我想从JwtStrategy的构造函数super中的ASYNC配置服务中获取TOKEN的值。
例如:
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(private authConfig: AuthConfig) {
super({token: await authConfig.getConfig.jwtToken});
}
}
我正在使用AWS Secret Manager来存储敏感值。
这是我的配置文件:
async getConfig() {
var sm = await SecretManager();
if('POOL_ID' in sm && sm.POOL_ID !== undefined) {
return {
region: envConfig.AWS_REGION,
userPoolId: sm.POOL_ID,
clientId: sm.APP_CLIENT_ID,
jwtToken: sm.jwtToken,
}
}
}
PS:我被禁止将配置变量存储在.js或.ts文件中,甚至直接存储在.env文件中。我只被允许从秘密经理那里获得值。我已经调试并检查了我在authConfig中获得的值是否正确,只是我不能在构造函数中使用它
您不能在构造函数中等待,所以我认为您需要注入配置对象。
您可以使AUTH_CONFIG useFactory提供程序调用机密管理器并返回包含令牌的配置对象。它需要是一个异步提供程序来等待secrets管理器调用。在应用程序启动时,NestJS将等待获取配置,以便将结果提供给JwtStrategy
。