JWT 解码失败,exp 值无效
JWT decode fails with invalid exp value
我在 nodejs 10.2.0
应用程序中使用模块 jsonwebtoken 8.4.0
。出于测试目的,在 https://jwt.io 上生成了一个 JWT 令牌:
payload
中的 exp
是过期日期,JSON 中的字符串格式正确。然后将左边的JWT token提交给app进行验证。这是失败的代码行(如下面的 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
解码只需要return原始payloadexp
,是一个字符串,为什么会失败?
您需要提供 exp
作为 NumericDate。显然你不能使用你提供的日期格式。
查看文档:https://www.npmjs.com/package/jsonwebtoken#token-expiration-exp-claim
我在 nodejs 10.2.0
应用程序中使用模块 jsonwebtoken 8.4.0
。出于测试目的,在 https://jwt.io 上生成了一个 JWT 令牌:
payload
中的 exp
是过期日期,JSON 中的字符串格式正确。然后将左边的JWT token提交给app进行验证。这是失败的代码行(如下面的 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
解码只需要return原始payloadexp
,是一个字符串,为什么会失败?
您需要提供 exp
作为 NumericDate。显然你不能使用你提供的日期格式。
查看文档:https://www.npmjs.com/package/jsonwebtoken#token-expiration-exp-claim