使用方法
- 从 Authorization 标头、Cookie 或浏览器开发者工具中复制令牌。开头的“Bearer ”会自动移除。
- 将令牌粘贴到输入框中,标头和载荷会以格式化的 JSON 显示。
- 查看状态提示和声明表,了解签发者、受众以及按本地时间显示的到期日期。
- 如需在其他地方使用,可复制标头或载荷 JSON。
工作原理
常见的带签名形式(JWS)JSON Web Token(JWT,RFC 7519)由三段以点号分隔的 base64url 编码内容组成。Header 指明用于签署令牌的算法,例如 HS256(使用 SHA-256 的 HMAC)或 RS256(RSA)。Payload 包含 claims,即关于用户和令牌本身的声明。签名用于让服务器检查 header 和 payload 是否被篡改。
Header 和 payload 只是经过编码,并未加密。任何持有令牌的人都能读取其中的内容,这正是此工具的功能。请勿在 JWT 的 payload 中放入机密信息。
解码并不能证明令牌有效。没有签发方的密钥,就无法判断签名是否真实,因此绝不能根据此处的结果决定是否信任某个令牌。应在服务器上使用维护良好的 JWT 库验证令牌,并检查签名、算法、exp、nbf、iss 和 aud。
表格中说明了注册的 claims。exp、nbf 和 iat 是 NumericDate 值,表示自 1970 年 1 月 1 日 UTC 起经过的秒数。此工具会将它们转换为你所在时区的日期,并与设备时钟进行比较,不包含服务器通常为应对时钟偏差而允许的少量误差。如果设备时钟不准,状态也会不准确。
包含五段内容的令牌是加密 JWT(JWE)。没有密钥就无法解码其 payload,因此此工具只会报告其格式。
示例
为什么我的 API 返回 401?
解码应用发送的 access token。如果状态行显示“已于……过期”,客户端需要刷新令牌。如果 aud 显示 https://api.example.com,而你正在调用 https://api2.example.com,则受众不匹配。
检查 OpenID Connect ID token
登录提供方发出的 ID token 包含 iss(提供方)、sub(稳定的用户 ID)、aud(你的 client ID)、iat 和 exp,以及 email、name 等个人资料 claims。解码后即可查看应用实际收到哪些 claims。
读取时间戳 claim
Payload 中包含 "exp": 1735689600。claims 表格会将其显示为 2025 年 1 月 1 日 00:00:00 UTC,并转换为你的当地时间,同时显示该时间距离现在有多久或还有多久。
常见问题
此工具会验证 JWT 签名吗?
不能。此工具只会解码 header 和 payload。验证需要密钥(用于 HS256)或签发方的公钥(用于 RS256 和 ES256),并且应在服务器上使用可信赖的库完成。
在这里粘贴令牌安全吗?
令牌会在浏览器中解码,不会发送到任何地方。即便如此,有效令牌在过期前都相当于密码,因此建议使用已过期的令牌或测试令牌,也不要将生产环境令牌粘贴到你不信任的工具中。
为什么任何人都能读取载荷?
签名 JWT 使用 base64url 编码,这并不等于加密。签名可以防止令牌被篡改,但不能防止他人读取。如果内容必须保密,请使用加密 JWT(JWE),或将数据保存在服务器上。
“exp”是什么意思,单位是什么?
exp 是表示过期时间的 NumericDate:自 1970-01-01 00:00:00 UTC 起经过的整秒数(不是毫秒数)。到达或超过该时间后,必须拒绝此令牌。
为什么会提示“不是有效的 base64url”?
令牌可能在复制时被截断或更改,例如末尾字符丢失、令牌被引号包住,或经过 URL 编码(用 %2E 替代句点)。请粘贴签发时的原始令牌。
隐私
令牌通过 JavaScript 在浏览器中解码,不会发送到任何服务器、不会存储,也不会纳入分析。此工具不会验证签名或查找密钥,因此不会发起网络请求。