gpt4 book ai didi

passport.js - 如何访问 JwtToken 以检查 nestjs Passport 策略中的黑名单?

转载 作者:行者123 更新时间:2023-12-05 07:00:46 27 4
gpt4 key购买 nike

我正在尝试在 JWTStrategy 中检查列入黑名单的 JWT token 。 jwtFromRequest 没有采用异步函数,所以我无法在那里检查它。

validate 函数提供对 JWT 负载而非 token 的访问权。

下面是我的示例代码。

@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(
private readonly configService: ConfigService<AppJWTSettings>,
@Inject(CACHE_MANAGER) private readonly cache: Cache,
) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), // Returns the encoded JWT string or null.
ignoreExpiration: false, // validate the expiration of the token.
// https://docs.nestjs.com/techniques/authentication#implementing-passport-jwt
// PEM-encoded public key
secretOrKey: configService.get<string>('JWT_PUBLIC_KEY'),
algorithms: ['RS256'],
});
}

/**
* Passport will build a user object based on the return value of our validate() method,
* and attach it as a property on the Request object.
*
* @param payload JWT payload
*/
async validate(payload: JwtPayload): Promise<JwtUser> {
const user = { id: payload.sub, iat: payload.iat };
return user;
}
}

最佳答案

创建新 token 时,我将 token 存储在 cookie 中并通过 AJAX 调用传递 token ,有时通过查询字符串请求传递它。您应该能够通过 cookie( header )、查询字符串等传递用户使用的任何 token ......在 Controller 上,验证它,如果被列入黑名单,则在未经授权的情况下返回重定向 url 或字符串,并通过 JavaScript 重定向。

关于passport.js - 如何访问 JwtToken 以检查 nestjs Passport 策略中的黑名单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64035995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com