首页 > 解决方案 > 如何在 Node.js 中解码令牌?jwt.verify() 失败

问题描述

我正在尝试在 nodejs 中使用 jwt 解码令牌。这是行不通的,每次我都得到undefined解码的令牌。

这是我的代码:

const token  = req.headers.authorization.split(' ')[1];
const decodedToken = jwt.verify(token, 'RANDOM_TOKEN_SECRET');
const userId = decodedToken.userId;

console.log(decodedToken);
console.log(decodedToken.userId);

以下是邮递员的截图和我收到的回复console.log在此处输入图像描述

在此处输入图像描述

标签: node.jsjwt

解决方案


我发现了这个错误。在我编码/生成令牌时,我没有为属性userId提供值。这就是它声明它未定义的原因。

我不得不做一些改变,它工作得很好。

           const token = jwt.sign(
              {userId: user.userid},
              'RANDOM_TOKEN_SECRET',
              {expiresIn: '24h'});

推荐阅读