NestJS JwtStrategy 使用 configService 传递密钥
Posted
技术标签:
【中文标题】NestJS JwtStrategy 使用 configService 传递密钥【英文标题】:NestJS JwtStrategy use configService to pass secret key 【发布时间】:2018-12-01 07:08:58 【问题描述】:我有来自文档示例 (https://docs.nestjs.com/techniques/authentication) 的 JwtStrategy 类:
@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() 调用?谢谢。
【问题讨论】:
【参考方案1】:只需删除this.
,请参见此处:
secretOrKey: configService.getSecretKey
自从configService
已作为参数传递后,它将起作用。
【讨论】:
为了避免“声明了属性 'configService' 但从不读取其值。”我还不得不从private readonly configService: ConfigService
中删除private
。
我可以确认,您不能有 private
关键字并在 constructor
内的 super()
调用中使用该属性以上是关于NestJS JwtStrategy 使用 configService 传递密钥的主要内容,如果未能解决你的问题,请参考以下文章
有或没有 tsconfig 目标 es5 的 NestJS 和 TypeORM 问题