在线解码 JWT Token,解析 Header、Payload 和 Signature 三部分内容。仅解码不验证签名。
使用场景
做前后端分离开发或者对接第三方 API 的时候,JWT 简直就是家常便饭。用户登录之后前端拿到了一个 JWT Token,但你不知道里面到底存了什么信息。eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ 这种乱七八糟的字符串,用这个工具解码一下,Header 和 Payload 就以 JSON 格式清清楚楚显示出来了——用了什么签名算法、token 是谁的、什么时候签发的。
做 QA 测试的同学也是重度用户。你需要验证登录接口返回的 Token 里是否包含了正确的用户信息和过期时间。把 Token 粘进去解码,看看 exp(过期时间)、iat(签发时间)、sub(用户标识)是否符合预期,不用去翻后端代码了。
还有一个场景是排查认证问题。用户说"我登录不上了"或者"我明明登录了怎么还是让我登录"。让用户把 Token 发给你(注意不要在生产环境下随意分享),解码一下看看是不是 Token 过期了、签发时间不对、或者 Payload 里缺了某些必要字段。定位问题比猜要快得多。
常见问题
问:解码 JWT 需要密钥吗? 答:解码 Header 和 Payload 部分不需要密钥,因为它们只是 Base64 编码,任何人都可以解码。但验证签名(Signature)需要密钥,这个工具只做解码不做签名验证,所以不需要密钥。这也是为什么不要在 JWT 里存放敏感信息的原因。
问:解码之后能看到什么信息? 答:能看到三部分:Header(算法和类型)、Payload(声明字段,如用户 ID、角色、过期时间等)和 Signature(签名哈希)。其中 Header 和 Payload 是明文可读的 JSON 格式。
问:JWT 中常见的字段有哪些?
答:iss(签发者)、sub(主题,通常是用户 ID)、aud(受众)、exp(过期时间,Unix 时间戳)、nbf(生效时间)、iat(签发时间)、jti(JWT ID)。自定义字段由各个系统自行定义,比如 role、name 等。
相关工具推荐
- JWT 在线调试工具 - 更全面的 JWT 调试和签名验证
- Base64 编码解码 - JWT 本质就是 Base64 编码的 JSON
- JSON 格式化/压缩工具 - 格式化解码后的 JSON 数据