JWT 解码

解析 JWT 的头部与载荷,检查过期时间

浏览器内运算JWT Decoder排错型03编码与加密

什么是JWT 解码

JWT 解码工具把 JSON Web Token 的三段结构拆开,展示 Header 与 Payload 的内容,并把 iat、exp 等时间戳换算成可读时间。解码在浏览器内完成,令牌不会上传,可用于调试生产环境 Token。

怎么用JWT 解码

  1. 1把完整的 JWT 粘贴进来(形如 xxxxx.yyyyy.zzzzz)。
  2. 2查看 Header 里的算法与 Payload 里的声明。
  3. 3检查 exp 是否已过期、iss 与 aud 是否符合预期。
  4. 4需要验证签名时,请在后端用密钥校验,前端只做解码。

在代码里怎么实现?

一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。

// 仅解码,不验证签名
const decodePayload = (token) => {
  const part = token.split('.')[1];
  const json = atob(part.replace(/-/g, '+').replace(/_/g, '/'));
  return JSON.parse(decodeURIComponent(escape(json)));
};

常见错误与排查

现象成因修复
解码报错:段数不足复制时丢掉了签名段,或多复制了 Bearer 前缀。去掉 Bearer 与空格,确认字符串里有两个英文句点。
exp 显示的时间早于现在令牌已过期,服务端会返回 401。用刷新令牌重新获取,或检查服务器与客户端时钟是否偏移。

常见问题

在线解码 JWT 安全吗?+

本工具的解码完全在你的浏览器内执行,没有任何上传请求,因此可以用于调试含敏感声明的生产令牌。但请注意通用原则:任何未验证过实现的在线工具都不应粘贴长期有效的高权限令牌。

为什么解码不需要密钥?+

因为 JWT 的 Header 与 Payload 只是 Base64URL 编码,不是加密,任何人拿到令牌都能读取内容。密钥只用于生成和验证第三段签名,这也是不能把敏感信息放进 Payload 的原因。

这个工具会校验签名吗?+

不会。校验签名需要密钥,而密钥不应出现在浏览器里。签名校验必须在你的后端服务完成,前端解码只用于查看声明内容与排查过期问题。

相关工具

全部工具