@rwoody/nestjs-jwt
v0.2.1
Published
Nest - modern, fast, powerful node.js web framework (@jwt)
Downloads
3
Readme
Description
JWT utilities module for Nest based on the jsonwebtoken package.
Installation
$ npm i --save @nestjs/jwt
Usage
Import JwtModule
:
@Module({
imports: [JwtModule.register({ secretOrPrivateKey: 'key' })],
providers: [...],
})
export class AuthModule {}
Inject JwtService
:
@Injectable()
export class AuthService {
constructor(private readonly jwtService: JwtService) {}
}
Async options
Quite often you might want to asynchronously pass your module options instead of passing them beforehand. In such case, use registerAsync()
method, that provides a couple of various ways to deal with async data.
1. Use factory
JwtModule.registerAsync({
useFactory: () => ({
secretOrPrivateKey: 'key'
})
});
Obviously, our factory behaves like every other one (might be async
and is able to inject dependencies through inject
).
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
secretOrPrivateKey: configService.getString('SECRET_KEY'),
}),
inject: [ConfigService],
}),
2. Use class
JwtModule.registerAsync({
useClass: JwtConfigService
});
Above construction will instantiate JwtConfigService
inside JwtModule
and will leverage it to create options object.
class JwtConfigService implements JwtOptionsFactory {
createJwtOptions(): JwtModuleOptions {
return {
secretOrPrivateKey: 'key'
};
}
}
3. Use existing
JwtModule.registerAsync({
imports: [ConfigModule],
useExisting: ConfigService,
}),
It works the same as useClass
with one critical difference - JwtModule
will lookup imported modules to reuse already created ConfigService
, instead of instantiating it on its own.
API Spec
The JwtService
uses jsonwebtoken underneath.
jwtService.sign(payload: string | Object | Buffer, options?: SignOptions): string
The sign method is an implementation of jsonwebtoken .sign()
.
jwtService.verify<T extends object = any>(token: string, options?: VerifyOptions): T
The verify method is an implementation of jsonwebtoken .verify()
.
jwtService.decode(token: string, options: DecodeOptions): object | string
The decode method is an implementation of jsonwebtoken .decode()
.
The JwtModule
takes an options
object:
secretOrPrivateKey
read moresignOptions
read morepublicKey
PEM encoded public key for RSA and ECDSAverifyOptions
read more
Support
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
Stay in touch
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
License
Nest is MIT licensed.