如何从 NestJS 中 JwtStrategy 的超级调用中的异步配置服务中获取 TOKEN 值?



我想从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

最新更新