我正在尝试在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);
答案 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