我正在使用 Express Js
以及版本 ^7.4.1
的 jsonwebtoken
。
问题:
- 如何区分
过期
和无效
token - 如何将
刷新 token
与JWT
一起使用 - 当我验证由
express js
创建的JWT
token 始终无效,但当使用相同的数据在jwt.io
中创建 token 时,它是有效的。我错过了什么吗?下面是该链接- https://jwt.io/#debugger?&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1tQGcuY29tIiwiYWRtaW4iOnRydWUsInRpbWUiOiIyMDE3LTEwLTAxVDA0OjU1OjQyLjM2MFoiLCJpYXQiOjE1MDY4MzM3NDIsImV4cCI6MTUwNjgzMzc1Mn0.VqlogOWRfGgTN3xN8Gs3Ivk1gZXMr_aiKZzTxN0EgNE (无效 token )
- https://jwt.io/#debugger?&id_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1tQGcuY29tIiwiYWRtaW4iOnRydWUsInRpbWUiOiIyMDE3LTEwLTAxVDA0OjU1OjQyLjM2MFoiLCJpYXQiOjE1MDY4MzM3NDIsImV4cCI6MTUwNjgzMzc1Mn0.M5pj4znpn-_6-jqsqVm2BWGEZTyMBNy2D6VdNejbsI0 (有效 token )
- 生成 JWT token 的代码
返回 jwt.sign(用户, config.secretKey, { expiresIn: 10// token 过期时间(以秒为单位)。 });
最佳答案
- 对于客户来说没有区别,在这两种情况下他都会得到 401。 在服务器端,您将验证签名。和 exp 字段。
- 请参阅我的回答:Should I explicitly send the Refresh Token to get a new Access Token - JWT
- 这是尝试在 jwt.io 上验证 token 的用户的常见问题。
您必须将
config.secretKey
的内容粘贴到“已解码”列中表格“验证签名”部分的编辑字段中。在第二种情况下, secret 是“ secret ”,这是 jwt.io 上的默认设置。如果您有不同的 secret ,就像第一种情况一样,jwt.io 不知道它,因此无法验证它。
关于javascript - 在 ExpressJs 中使用 JWT 时出现多个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46509453/