【发布时间】:2022-01-25 19:45:23
【问题描述】:
我正在使用访问令牌和刷新令牌设置身份验证。我基本上在那里,但我无法理解如何刷新访问令牌。从我从这里和其他资源中看到的情况来看,大多数人似乎设置路由处理程序来刷新令牌,如下所示:
@UseGuards(JwtRefreshGuard)
@Get('/refresh')
refresh(@GetUser() user: User) {
return this.authService.getAccessToken(user.username);
我正在使用使用护照策略的自定义守卫来验证刷新令牌:
async validate(request: Request, payload: JwtPayload) {
const { username } = payload;
const refreshToken = request.cookies?.Refresh;
return this.userService.getUserIfRefreshTokenMatches(
refreshToken,
username,
);
我不明白的是如何在不中断应用用户正常操作的情况下实现向该处理程序发出请求,以及如何在访问令牌过期时检查是否需要调用该处理程序。
【问题讨论】:
标签: jwt nestjs passport.js refresh-token auth-guard