JWT 解码器
在浏览器中解码任意 JSON Web Token:查看 header 和 payload,把 exp、iat、nbf 显示为你所在时区的真实时间,并判断令牌是否已过期。
概要
头部(Header)
载荷(Payload,声明)
令牌与签名
不发送到任何地方,也能读懂 JWT
粘贴 JSON Web Token,解码器会把它拆成三部分:头部(用哪种算法签名)、载荷(声明:用户是谁、能访问什么、令牌何时过期)和签名。JSON 会自动格式化,一眼就能看懂。
时间声明会变成真实日期。exp、iat 和 nbf 会按你的时区、UTC 以及“20 分钟后”“3 天前”的形式显示,状态栏会立即告诉你令牌是否仍有效、已过期或尚未生效。
令牌往往能访问真实账户,所以解码完全在你的浏览器中进行。令牌不会上传到我们的服务器,也不会被记录或保存,比粘贴到聊天机器人或会发送到服务器的网站更安全。
如何解码 JWT
- 从你的应用、
Authorization请求头、Cookie 或浏览器开发者工具中复制令牌。 - 粘贴到输入框。
Bearer前缀、引号、空格和换行会被自动去掉。 - 查看概要:状态、算法、签发者、主体、受众,以及准确的签发和过期时间。
- 用复制按钮把格式化后的头部或载荷 JSON 放进错误报告或笔记。
常见声明的含义
exp(expiration time):过了这个时间,令牌必须被拒绝。iat(issued at):令牌的创建时间。nbf(not before):在这个时间之前不得接受令牌。iss(issuer):令牌的签发者,通常是登录服务器的 URL。sub(subject):令牌所指的对象,通常是用户 ID。aud(audience):令牌面向的应用或 API。alg和kid(在头部):签名算法(如 HS256 或 RS256)以及签名所用密钥的 ID。
JWT 中的日期是 NumericDate 值:自 1970 年 1 月 1 日 UTC 起的秒数。解码器会帮你转换,无需另外使用时间戳转换工具。
调试技巧
- 如果 API 在登录后立刻返回 401,先检查
exp和nbf。服务器时钟快或慢几分钟是常见原因,多数库都允许设置少量容差。 - 如果日期在几万年之后,说明这个值是用毫秒而不是秒写的。出现这种情况时解码器会提醒你。
- 把
aud和iss与 API 期望的值对比。为其他应用或环境(测试环境而非生产环境)签发的令牌,是“无效令牌”错误的常见原因。 - 头部中
alg为none表示令牌没有签名。生产环境中绝不要接受这样的令牌。
限制与须知
- 解码不等于验证。任何人都能创建带任意声明的令牌;只有在你的服务器上用正确的密钥校验签名,才能证明令牌是真的。本工具不验证签名。
- 普通 JWT 的载荷只是编码,并没有加密。任何拿到令牌的人都能读取,所以绝不要在声明中放入密码或机密信息。
- 加密令牌(JWE,5 部分)没有密钥无法读取,因此只显示其头部。
- 数字按令牌中的原样显示,长数字 ID 不会被四舍五入。
常见问题
在这里粘贴真实令牌安全吗?
安全。解码在你浏览器中用 JavaScript 完成,令牌绝不会发送到我们的服务器。不过仍请像对待密码一样对待有效令牌:不要在截图或聊天中分享,并让它们自然过期。
这个工具能判断令牌是否有效吗?
它会根据日期告诉你令牌是否已过期或尚未生效。它无法判断签名是否真实,因为那需要只应保存在你服务器上的密钥或公钥。
为什么刚拿到的令牌显示已过期?
检查签发令牌的服务器时钟,并确认 exp 是以秒而不是毫秒为单位。如果 iat 也是几小时之前,服务器时钟很可能不准。
JWT 解码器和 Base64 解码有什么区别?
JWT 是用点号连接的三段 Base64URL 编码内容。Base64 解码一次只能读一段,而 JWT 解码器会自动拆分令牌,处理 URL 安全字符和缺失的填充,并把日期转换成易读的时间。
可以离线使用吗?
可以。页面加载完成后,断开网络也能继续解码令牌。
相关工具
- Base64 解码: 把 Base64 字符串立即解码为可读文本,方便查看认证头、令牌、API 数据和邮件内容。免费、无需注册的 Base64 在线解码工具。
- JSON 格式化校验工具: 在线检查 JSON 语法错误,并把压缩成一行的 JSON 格式化为易读的缩进格式。免费的 JSON 格式化、校验、美化工具,无需注册。
- URL 解码: 把 %E4%BD%A0 这类百分号编码的网址和查询参数一键解码为可读的中文和文本,%20、%26 也能还原。免费、无需注册的 URL decode 工具。
- Base64 编码: 把字符串和文本立即编码为 Base64,适用于 Data URI、HTTP Basic 认证头、邮件和 API 开发。免费、无需注册的 Base64 在线编码工具。
类似工具
把 Base64 字符串立即解码为可读文本,方便查看认证头、令牌、API 数据和邮件内容。免费、无需注册的 Base64 在线解码工具。
在线检查 JSON 语法错误,并把压缩成一行的 JSON 格式化为易读的缩进格式。免费的 JSON 格式化、校验、美化工具,无需注册。
把 %E4%BD%A0 这类百分号编码的网址和查询参数一键解码为可读的中文和文本,%20、%26 也能还原。免费、无需注册的 URL decode 工具。
热门免费工具
一键生成安全的随机密码,可自定义长度以及大写字母、小写字母、数字和符号。免费、无需注册,在浏览器中即可使用。
在线将英文转换为大写、小写、首字母大写、camelCase 驼峰、PascalCase、snake_case、CONSTANT_CASE、kebab-case 等格式。免费、无需注册。
一键从文本、HTML、日志和文档中批量提取所有邮箱地址,生成带数量统计的列表。免费、无需注册的在线邮箱提取工具。
在线查询域名的 DNS 记录(A、AAAA、CNAME、MX、NS、TXT、SOA),用于检查邮箱解析、SPF、域名验证和 DNS 服务器。免费、无需注册。
在换行、空格、分号、连字符、竖线和点之间转换文本分隔符。把一列内容合并成一行,或把一行拆成一列。免费、无需注册的在线工具。
用电话号码和预设消息生成 WhatsApp 点击即聊的 wa.me 链接,适合外贸网站、独立站、社交主页、广告和二维码。免费、无需注册。