JWT 解码 — 本地查看 Header 与 Payload(不验签)
粘贴 JWT,在浏览器里查看 Header 与 Payload 的 JSON——不验证签名。步骤:粘贴 token、解码、复制 Header 或 Payload。示例:样例 token 显示 alg 为 HS256、iat 为 1516239022,并给出 UTC 与本地时间。Token 不会上传。
怎么用
粘贴完整 JWT(header.payload.signature)。页面按点拆分,对前两段做 Base64url 解码并格式化 JSON;若 payload 含 exp/iat/nbf 数字,会额外显示 UTC 与本地时间。第三段 Signature 仅原文展示,不做验证。
使用规则
本解码器做什么、不做什么:结构、Base64url 步骤、注册声明与「不验签」边界。
- 结构:JWS 紧凑格式分三段 Base64url——Header(alg、typ 等)、Payload(声明)、Signature(二进制,非 JSON)。
- Base64url:-→+、_→/,补齐 padding 至长度 %4,再 atob 与 JSON.parse;哪段出错会单独提示 Header 或 Payload。
- 注册声明:exp(过期)、iat(签发)、nbf(生效)为 UTC Unix 秒;能读懂 JSON 不等于 token 可信。
- 隐私与限制:粘贴不上传;不做 HMAC/RSA 验签。生产环境不能仅凭解码结果授权。
示例
输入:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9eIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c → Header:{"alg":"HS256","typ":"JWT"};Payload:{"sub":"1234567890","name":"John Doe","iat":1516239022},iat 会显示 UTC 与本地时间;Signature 仅展示原文,未验签。
适合场景
- 全栈调试:OAuth access token 的 sub、scope、exp 是否符合网关预期。
- API 对接:核对 ID token 的 iss、aud 是否与文档一致。
- 学习 JWT:看清 Header、Payload、Signature 三段如何对应 JWS 结构。
常见问题
会验证 JWT 签名吗?
不会。解码只是把 Header/Payload 的 Base64url 还原成 JSON;任何人都能读这两段,验证签名需要发行方密钥或公钥,本页故意不做。
为什么提示段数错误?
确认粘贴的是完整 token,且恰好两个点分成三段。多余点、截断粘贴,或把普通 Base64 当 JWT 都会报错。
JWT 的 Base64url 和普通 Base64 有何不同?
JWT 用 Base64url:- 代替 +、_ 代替 /,常省略末尾 =。通用 Base64 工具可能解错 URL 安全 token——可用本页或站内 Base64 工具的 url-safe 模式。
exp、iat、nbf 怎么读?
exp、iat、nbf 是 UTC 的 Unix 秒。本页会转成可读的 UTC 与本地时间;判断过期请对照当前时间,其他格式可用 Unix 时间戳工具。
Token 会上传到服务器吗?
不会。拆分、Base64url 解码与 JSON 解析都在当前标签页本地完成;请勿在公用电脑上粘贴生产环境密钥。
咨询与反馈
页面不清、功能异常或想提建议?在下方起草邮件,我们会阅读每一封关于工具的来信。