关于JWT 解码校验
JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),用于在网络应用之间安全地传递声明信息。JWT 通常由三部分组成:Header(头部,描述令牌类型与签名算法)、Payload(载荷,包含用户身份与权限声明)、Signature(签名,用于验证令牌完整性),三部分以点号(.)连接,形如 xxxx.yyyy.zzzz。
JWT 广泛应用于现代 Web 应用的身份认证与信息交换:单点登录(SSO)、API 接口鉴权、OAuth 2.0 Access Token、微服务间调用凭证等。理解 JWT 内部结构对调试认证流程、排查权限问题、安全审计至关重要。注意 JWT 的 Header 与 Payload 部分使用 Base64URL 编码(非加密),任何人都可以解码查看内容,因此切勿在 Payload 中存放敏感信息。
本 JWT 解码工具使用浏览器原生 atob 函数解码 Header 与 Payload 部分,并以格式化 JSON 形式展示。所有解码操作在浏览器本地完成,Token 不会上传至任何服务器,可放心解码生产环境的 Token。
核心特性
三段式自动解析
自动识别 JWT 的 Header.Payload.Signature 三段结构,分别解码展示。
安全警告
自动检测 alg=none、缺失签名段、exp 已过期 / 即将过期(5 分钟内)等高风险情况并醒目标注。
时间声明可读化
exp、iat、nbf、auth_time 等时间戳声明自动附带 ISO 8601 可读时间,无需心算。
格式化 JSON 输出
解码后的 Header 与 Payload 以缩进 JSON 形式展示,便于阅读其中的声明字段。
Base64URL 兼容
正确处理 Base64URL 编码(替换 - 为 +、_ 为 /、补充 = 填充),与 JWT 标准一致。
本地解码无上传
所有解码在浏览器内完成,包含用户身份信息的 Token 不会上传服务器。
使用场景
调试 OAuth 登录流程
OAuth 2.0 登录返回的 Access Token 通常是 JWT,解码后可查看用户 ID、过期时间、权限范围等声明。
排查权限问题
当用户报告权限不足时,解码其 JWT 查看角色声明(role)与权限声明(scope),快速定位问题。
验证 Token 过期
解码 Payload 中的 exp(过期时间)字段,与当前时间对比,判断 Token 是否已失效。
安全审计
审计 JWT 实现时,解码 Token 检查是否包含敏感信息、是否使用弱签名算法(如 none、HS256 短密钥)。
常见问题
JWT 解码等于解密吗?
不等于。JWT 的 Header 与 Payload 仅使用 Base64URL 编码,任何人都可以解码查看,没有加密。JWT 的安全性来自 Signature 部分的签名,确保 Token 未被篡改。切勿在 Payload 中存放密码、密钥等敏感信息。
为什么我的 Token 解码失败?
常见原因:1) Token 不完整(缺少某一段);2) Token 中包含空格或换行;3) Token 实际上不是 JWT 而是其他格式(如 opaque token)。请检查 Token 是否为标准的三段式结构。
能验证 JWT 签名吗?
本工具仅解码 Header 与 Payload,不验证签名。签名验证需要服务端密钥(HS256)或公钥(RS256),属于服务端逻辑。但工具会自动检测 alg=none、缺失签名段、exp 过期 / 即将过期等高风险情况并醒目提示;如需完整的签名验证,请使用 jwt.io 等在线工具或后端库。
JWT 中常见的声明字段有哪些?
标准声明包括:iss(签发者)、sub(主体,通常为用户 ID)、aud(接收方)、exp(过期时间)、iat(签发时间)、nbf(生效时间)、jti(唯一 ID)。自定义声明则根据业务需要添加,如 role、scope、email 等。