JWT 由什么组成
一个 JWT 用两个点号分成三段:Header(算法与类型)、Payload(声明,如用户标识、过期时间)、Signature(签名)。前两段是 Base64URL 编码的 JSON,所以任何人都能解开查看——JWT 默认只保证「未被篡改」,并不保证「内容保密」。
| 字段 | 含义 |
|---|---|
iss | 签发者 |
sub | 主体(通常是用户 ID) |
aud | 接收方 |
exp | 过期时间(Unix 秒) |
iat | 签发时间 |
nbf | 生效时间(不早于) |
常见问题
这里会验证签名吗?
不会。本工具只做解码,用于查看内容与排查问题。签名验证需要密钥(HS256)或公钥(RS256),必须在服务端完成,浏览器里验证没有安全意义。
因此能把敏感数据放进 Payload 吗?
不能。Payload 是明文可解的。手机号、身份证、密码等敏感信息不应直接写入 JWT,确需携带时应先加密(JWE)。
令牌会上传吗?
不会。解码全部在本地完成,页面没有任何网络请求。但仍建议不要在公共电脑上粘贴生产环境令牌。
怎么用
- 复制完整令牌,粘贴到输入框
- 点解析按钮
- 查看格式化后的头部和载荷内容
- 对照下方整理出的常用字段,确认过期时间等信息
适用场景
- 调试登录接口时确认返回的令牌里带了哪些用户信息
- 排查接口报令牌过期,核对过期时间字段
- 核对令牌的签名算法是否和后端配置一致
- 给同事演示令牌结构,直观看到三段式组成
注意事项
- 只做解码不做验签,签名部分的真伪无法在这里确认
- 载荷只是 Base64Url 编码,不是加密,任何人都能解开看到原文
- 粘贴的令牌只在浏览器本地解析,不会上传到服务器
- 过期时间字段按秒计算,直接当毫秒时间戳读会得到错误日期
- 必须是用点号分隔的三段完整令牌,缺签名段或粘贴时带了引号都会解析失败