我有一个基于JWT的身份验证,我成功生成了一个令牌,问题出在验证这些令牌上。我使用jsonwebtoken库,我使用提供的用来验证我的令牌的verify方法,但是当令牌未过期时,它将抛出一个过期的令牌错误。
我使用带有jsonwebtoken库的express框架来生成和验证令牌。验证是在称为受保护路由的中间件上进行的。
当我登录用户时,我使用jsonwebtoken库和一个秘密的代码将他们的会话数据放在jwt负载上:
const generateToken = (payload, secret, expiration) => {
return jwt.sign(payload, secret, {expiresIn: expiration});
};
并且我使用以下功能验证中间件上的令牌:
const validateToken = (token, secret) => {
return new Promise((resolve, reject) =>
{
jwt.verify(token, secret, (err, decodedToken) =>
{
if (err || !decodedToken)
{
return reject(err)
}
return resolve(decodedToken)
})
})
};
当我将令牌发送到任何受保护的路由时,会向我抛出此错误:
"message": {
"name": "TokenExpiredError",
"message": "jwt expired",
"expiredAt": "2019-04-30T14:21:17.000Z"
}
我使用“ ajbakbvabikae”之类的随机机密,到期时间为3600。
在验证功能上,令牌和密钥已正确提供,我在邮递员中对其进行了测试,并且这些参数已正确设置。
这里可能是什么问题?