JWT解码失败,具有无效的exp值

时间:2019-03-24 23:32:59

标签: jwt express-jwt

我正在jsonwebtoken 8.4.0应用中使用模块nodejs 10.2.0。为了测试目的,在https://jwt.io上生成了一个JWT令牌:

enter image description here

payload中,exp是到期日期,并且该字符串已正确以JSON格式设置。然后,将左侧的JWT令牌提交给应用进行验证。这是失败的代码行(如下面的29:33):

const decoded = jwt.verify(jwt_token, process.env.jwtPrivateKey);

错误是:

{ JsonWebTokenError: invalid exp value
    at C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:149:21
    at getSecret (C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:90:14)
    at Object.module.exports [as verify] (C:\d\code\js\emps_bbone\node_modules\jsonwebtoken\verify.js:94:10)
    at module.exports (C:\d\code\js\emps_bbone\middleware\auth_userinfo.js:29:33)

该错误表明exp值无效。显然,还有一个有效载荷生成的有效jwt令牌。 jsonwebtoken解码仅需要返回原始有效载荷exp,它是一个字符串,为什么失败?

1 个答案:

答案 0 :(得分:1)

您需要提供exp作为 NumericDate 。显然,您不能使用您提供的日期格式。

请参阅文档:https://www.npmjs.com/package/jsonwebtoken#token-expiration-exp-claim

请参阅规范:https://tools.ietf.org/html/rfc7519#section-4.1.4