小编tal*_*don的帖子

刷新令牌 API 错误“secretOrPrivateKey 必须有值”

当用户登录 API 时会生成一个令牌,以便他可以访问其他端点,但该令牌会在 60 秒后过期,我创建了一个函数来使用旧令牌(存储在数据库中)生成新的有效令牌,但是当我要生成新的有效令牌时,我收到 SecretOrPrivateKey 必须有一个值错误

函数refreshToken使用函数login生成一个新的token

嵌套错误:

secretOrPrivateKey must have a value
Error: secretOrPrivateKey must have a value
   at Object.module.exports [as sign] (C:\Users\talis\nova api\myflakes_api\node_modules\jsonwebtoken\sign.js:107:20)
   at JwtService.sign (C:\Users\talis\nova api\myflakes_api\node_modules\@nestjs\jwt\dist\jwt.service.js:28:20)
   at AuthService.login (C:\Users\talis\nova api\myflakes_api\src\auth\auth.service.ts:18:39)
   at TokenService.refreshToken (C:\Users\talis\nova api\myflakes_api\src\token\token.service.ts:39:37)
   at processTicksAndRejections (node:internal/process/task_queues:96:5)
   at TokenController.refreshToken (C:\Users\talis\nova api\myflakes_api\src\token\token.controller.ts:12:16)
   at C:\Users\talis\nova api\myflakes_api\node_modules\@nestjs\core\router\router-execution-context.js:46:28
   at C:\Users\talis\nova api\myflakes_api\node_modules\@nestjs\core\router\router-proxy.js:9:17
Run Code Online (Sandbox Code Playgroud)

我的代码:

token.service.ts文件中的函数refreshToken

async refreshToken(oldToken: string) {
    let objToken = await this.tokenRepository.findOne({hash: oldToken})
    if (objToken) {
        let user = await this.userService.findOneOrFail({email:objToken.email})
        return this.authService.login(user)
    } else {
        return new UnauthorizedException(MessagesHelper.TOKEN_INVALID)
    } …
Run Code Online (Sandbox Code Playgroud)

node.js jwt typescript refresh-token nestjs

4
推荐指数
1
解决办法
5647
查看次数

标签 统计

jwt ×1

nestjs ×1

node.js ×1

refresh-token ×1

typescript ×1