jsonwebtoken返回过期的令牌错误,如果不是

时间:2019-04-30 15:19:28

标签: express jwt

我有一个基于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。

在验证功能上,令牌和密钥已正确提供,我在邮递员中对其进行了测试,并且这些参数已正确设置。

这里可能是什么问题?

0 个答案:

没有答案