当我尝试验证用户的令牌时,我总是收到错误 500。
function verifyToken(req, res, next) {
if(!req.headers.authorization){
return res.status(401).send('Unauthorized request')
}
let token = req.headers.authorization.split(' ')[1]
if (token === 'null') {
return res.status(401).send('Unauthorized request')
}
let payload = jwt.verify(token, 'secretkey')
if (!payload) {
return res.status(401).send('Unauthorized request')
}
req.userId = payload.subject
next()
我从尝试捕获有效载荷开始环绕,我想我明白 jwt 操作已经改变,它现在需要它才能工作,但我不明白为什么它不起作用。看来他无法检查比赛。
function verifyToken(req, res, next) {
if(!req.headers.authorization){
return res.status(401).send('Unauthorized request')
}
let token = req.headers.authorization.split(' ')[1]
if (token === 'null') {
return res.status(401).send('Unauthorized request')
}
try {
let payload = jwt.verify(token, 'secretkey')
req.userId = payload.subject
next()
} catch (error) {
return res.status(401).send('Unauthorized request')
}
}
你可以使用 jwt-decode/npm jwt-decode 库来解码。文档示例:
import jwt_decode from 'jwt-decode';
var token = 'eyJ0eXAiO.../// jwt token';
var decoded = jwt_decode(token);
console.log(decoded);
其他库检查角度2-JWT