Package Exports
- @nestjs/jwt
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@nestjs/jwt) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
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.signAsync(payload: string | Object | Buffer, options?: SignOptions): Promise<string>
The asynchronous .sign()
method.
jwtService.verify<T extends object = any>(token: string, options?: VerifyOptions): T
The verify method is an implementation of jsonwebtoken .verify()
.
jwtService.verifyAsync<T extends object = any>(token: string, options?: VerifyOptions): Promise<T>
The asynchronous .verify()
method.
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.