JWT 调试:拆解 Header / Payload / Signature
JWT 三段结构如何解码,claims 怎么看,签名验证的前提与安全注意(别粘生产密钥)。
JWT 的三段结构
JWT(JSON Web Token)形如 header.payload.signature,前两段是 Base64URL 编码的 JSON,第三段是签名。用 . 分割即可分别解码查看。
重点看 Payload 的 claims
sub 主体、iss 签发者、exp 过期时间(Unix 秒)、iat 签发时间。exp 过期后 token 应被拒绝。
签名验证的边界
仅解码不验证签名;要验证签名必须持有对应密钥/公钥,且应在服务端完成。前端调试只做可读性解码。
安全注意
JWT 中不要放密码等敏感信息(它只是编码不是加密),且切勿把生产密钥粘贴到不可信页面。
常见问题
- Base64URL 和普通 Base64 一样吗?
- 类似但把 + / 换成 - _ 并去掉填充 =,更适合放在 URL 中。
- 为什么解码出 exp 但页面说已过期?
- exp 是 Unix 秒,需对照当前时间;可用时间戳工具核对。
- 能在浏览器里验证签名吗?
- 可以持密钥验证,但密钥暴露在前端有风险;生产验证务必放服务端。