我正在jsonwebtoken 8.4.0
应用中使用模块nodejs 10.2.0
。为了测试目的,在https://jwt.io上生成了一个JWT令牌:
在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
,它是一个字符串,为什么失败?
答案 0 :(得分:1)
您需要提供exp
作为 NumericDate 。显然,您不能使用您提供的日期格式。
请参阅文档:https://www.npmjs.com/package/jsonwebtoken#token-expiration-exp-claim