一个普通的访问令牌
- 输入
- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJKYW5lIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDM2MDB9.signature
- 结果
- sub: 12345 · exp: 2023-11-14 23:13 UTC
头部、载荷和签名,用点分隔。
粘贴 JWT 即可查看它的头部和声明。过期与签发时间会被转成可读日期,标准声明也附有说明。令牌始终留在你的浏览器里。
全部在浏览器内完成. 这个页面是静态文件。你输入的内容只留在标签页里,不会发送到服务器,关闭即消失。所以粘贴真实的令牌或配置是安全的。
头部、载荷和签名,用点分隔。
exp 的单位是秒而不是毫秒。填成毫秒会落到公元 55000 年,这是个常见 bug。
接受 alg: none 的库会放行伪造令牌。请在服务端固定期望的算法。
JWT 是被签名而不是被加密。任何拿到令牌的人都能像这个页面一样读出全部声明,所以不要往里面放机密信息。
能解码并不能证明真实性。一个令牌可以完全可读同时完全伪造,只有服务端的签名验证才能下结论。
如果令牌一签发就过期,请比较 iat 声明和服务器时钟。机器之间几分钟的偏差就足以让正常令牌被拒。
不会。这个页面是静态文件,解码只用到浏览器里的 Base64 与 JSON 解析,不记录也不发送,你可以在网络面板中确认。
验证需要签名密钥或签发方的公钥。把生产环境的签名密钥粘贴到网页里,其风险远大于它带来的便利。
exp 是令牌不再被接受的时刻,nbf 是开始被接受的时刻。提前签发的令牌 nbf 可能在未来,在那之前都会被拒绝。