NestJS JwtStrategy 使用 configService 传递密钥
NestJS JwtStrategy use configService to pass secret key
我有来自文档示例 (https://docs.nestjs.com/techniques/authentication) 的 JwtStrategy class:
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(
private readonly authService: AuthService,
private readonly configService: ConfigService,
) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: this.configService.getSecretKey,
});
}
// ...
}
当我在调用 super() 之前尝试访问 this
时,出现错误。但我仍然想使用 configService 来获取密钥。
我知道我可以使用 env var 来做到这一点,但在我看来,服务方法是更清晰的解决方案。
我如何使用 configService 或从中获取值并传递给 super() 调用?谢谢
只需删除 this.
,请参阅此处:
secretOrKey: configService.getSecretKey
它将起作用,因为 configService
已作为参数传递。
我有来自文档示例 (https://docs.nestjs.com/techniques/authentication) 的 JwtStrategy class:
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(
private readonly authService: AuthService,
private readonly configService: ConfigService,
) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: this.configService.getSecretKey,
});
}
// ...
}
当我在调用 super() 之前尝试访问 this
时,出现错误。但我仍然想使用 configService 来获取密钥。
我知道我可以使用 env var 来做到这一点,但在我看来,服务方法是更清晰的解决方案。
我如何使用 configService 或从中获取值并传递给 super() 调用?谢谢
只需删除 this.
,请参阅此处:
secretOrKey: configService.getSecretKey
它将起作用,因为 configService
已作为参数传递。