JWT 解析与校验
查看 Token 内声明的字段、过期状态,并用共享密钥校验 HMAC 签名。解析与校验均在浏览器本地完成,不会把 Token 上传到服务器。
解析 Token
允许直接粘贴带有 Bearer 前缀或引号的 token;内容不会离开浏览器。
校验签名(HS256 / HS384 / HS512)
先解析出合法的 token 后才能校验签名。
校验通过只说明签名与密钥匹配,不代表 token 未被撤销,也不代表签发方可信。密钥不会离开浏览器。
生成测试 Token
仅用于本地联调。密钥留空时使用 local-test-secret。
生成的 token 使用所选 HMAC 算法与当前密钥,服务端仍需自行验证 exp、aud 等业务规则。
JWT 由哪三部分组成
一个 JWS 格式的 Token 由 header.payload.signature 三段组成,中间用点号分隔。前两段是 base64url 编码的 JSON,任何人都可以直接解码阅读,因此不要在其中放入手机号、身份证号等敏感信息。
第三段是签名,只有持有密钥的一方能生成。签名的输入是前两段的原始字符串,因此修改 payload 后旧签名会立刻失效。
常用字段速查
| 字段 | 位置 | 说明 |
|---|---|---|
| alg / typ / kid | header | 签名算法、令牌类型与密钥标识,校验方据此选择密钥。 |
| iss | payload | 签发方标识,应校验是否属于预期的服务。 |
| sub | payload | 主体标识,通常是用户 ID,不要依赖它做权限判断。 |
| aud | payload | 受众,用于区分同一签发方发给不同系统的 token。 |
| exp / nbf / iat | payload | 过期、生效与签发时间,采用 NumericDate 秒级时间戳。 |
| jti | payload | 令牌唯一编号,配合黑名单实现主动撤销。 |
除上表字段外,业务方可自由添加自定义声明,例如角色、租户或权限列表;这些字段同样只是明文数据,权限判断必须在服务端完成。
使用时的安全要点
- 服务端必须校验签名,并使用固定算法白名单,避免接受
alg: none或前后端算法不一致的 Token。 - 解析成功不等于 Token 有效。没有
exp的 Token 在密钥不轮换的情况下会长期有效,属于常见隐患。 - HS 系列使用共享密钥,密钥泄露等同于任何人都能签发 Token;RS/ES 等非对称算法请用公钥在服务端校验。
- 签发方与校验方时钟偏差会导致 nbf 未生效或 exp 提前过期,部署前应保证 NTP 同步。
- 需要主动登出或撤销授权时,仅靠 exp 不够,还需配合 jti 黑名单或缩短有效期并引入刷新令牌。
常见问题
为什么有些 Token 解析失败?
常见原因是复制不完整、被换行截断,或者使用的是五段结构的 JWE(加密令牌)。JWE 的载荷经过加密,没有密钥无法还原,本工具只处理明文 JWS。
解析出来的内容能直接相信吗?
不能。任何人都能构造一段看起来合法的 payload,只有签名校验通过并且声明符合业务规则(受众、签发方、有效期)时才可信任。
Token 已过期为什么还能解析?
解码只是把 base64url 还原为 JSON,不涉及任何有效性判断。是否过期需要校验 exp 与当前时间,是否可用还要看服务端是否接受。
可以把生产 Token 粘贴到在线工具吗?
本页面的解析与校验都在浏览器本地进行,不发送网络请求。但 Token 等同于登录凭证,仍建议使用测试账号或联调环境的 Token,避免在公共电脑上操作。