如何在Node.js中解码令牌? jwt.verify()失败

时间:2019-11-16 13:03:04

标签: node.js jwt

我正在尝试在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 enter image description here时得到的邮递员和回复的屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:0)

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

我必须进行一些更改,并且一切正常。

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

答案 1 :(得分:0)

如果您想知道令牌中的内容,您必须这样做,这是一个选项:

首先:

nmp i jwt-decode

第二:

import jwt_decode  from 'jwt-decode';  // For ES6
const jwt_decoder = require('jwt-decode'); // For classic node.js

var token = "cnueownvwnqc..." // This is your token, you can send it from the frontend 

var decoded = jwt_decode(token); // Decoding
console.log(decode.userId); // Dictionary array