解码 JSON Web Token
解码 JWT 的头部和载荷,并把 exp、iat、nbf 这几个声明转换成可读的时间。签名不做校验——校验需要签名密钥,而密钥永远不该粘进任何网页。
如何使用
- 1把 token(header.payload.signature)粘进输入框。
- 2header 和 payload 会被解码,按格式化后的 JSON 显示。
- 3exp、iat、nbf 直接按日期读,不用去换算 Unix 时间戳。
常见问题
- 签名会被验证吗?
- 不会,这是有意的。验签需要签名密钥,而签名密钥绝不该粘进任何网页。这里做的是解码和阅读,它不告诉你这个 token 可不可信。
- 把真实 token 贴进来安全吗?
- 解码在你的浏览器里完成,不发送任何东西,token 不会离开你的设备。不过,凡是在别处分享过的 token 都应当视为已泄露;只想看结构的话,优先拿一个已经过期的。
- exp、iat、nbf 是什么意思?
- 过期时间、签发时间、生效时间,三个都是以秒计的 Unix 时间戳。这里显示成可读日期,是因为在脑子里拿 1735689600 和当前时间比大小,正是出错的地方。
- 为什么提示我的 token 解不出来?
- 通常是复制时掉了字符,或者它根本不是 JWT——不透明的会话标识长得很像,但里面没有可解码的结构。JWT 至少有两段用点分隔的 Base64URL,并且第一段能按 JSON 解析。
- payload 是加密的吗?
- 不是。签名的 JWT 只是 Base64URL 编码,不是加密:拿到 token 的人都能读到里面每一条 claim,这个页面本身就是证明。签名防的是篡改,不提供保密。永远不要把隐私内容放进 payload。