【发布时间】:2021-12-29 20:00:24
【问题描述】:
我正在尝试为使用 PassportJS 在 NestJS API 上更改密码的用户重置/更改令牌 (JWT)。这是此授权如何工作的一个简洁示例:https://docs.nestjs.com/security/authentication。
我想在密码更改时生成一个新令牌,以确保在用户登录的每台设备上,密码更改后他们将获得未经授权并因此退出。
这是我在用户服务中处理密码更改的方式:
async changePassword(uId: string, password: any) {
return await this.userRepository.createQueryBuilder()
.update(User)
.set({ password: await bcrypt.hash(password.value, 10) })
.where("userId = :userId", { userId: uId })
.execute();
}
我认为没有预构建方法可以做到这一点。 JwtService只有5个方法:decode、sign(这个是用来生成token的)、signAsync、verify和verifyAsync。
那么我该如何正确地做到这一点呢?
【问题讨论】:
标签: jwt passport.js nestjs nestjs-passport