MS

免费工具 · 在浏览器中运行

JWT 解码器

粘贴 JSON Web Token,读取其 header 和 payload,查看签发时间和过期时间。

快速解答

JWT 由点号分隔的三部分组成:header、payload 和签名。前两部分是 Base64URL 编码的 JSON,任何人都能解码阅读;只有签名能证明令牌是真实的。本工具解码 header 和 payload,并把 exp、iat 和 nbf 转换为可读日期,但不验证签名。

使用方法

  1. 粘贴令牌. 从应用、Authorization 请求头或 Cookie 中复制 JWT 并粘贴到框中。
  2. 查看各部分. header 显示算法;payload 显示声明,例如用户 ID 和角色。
  3. 检查时间. 工具会显示令牌的签发和过期时间,以及是否已经过期。

常见问题

把 JWT 粘贴到这里安全吗?

安全。解码完全在浏览器中进行,不会发送到服务器。不过,生产环境的令牌仍应像密码一样对待,避免分享。

这个工具会验证 JWT 签名吗?

不会。验证签名需要密钥或公钥,它们应保存在你的服务器上。解码只读取 header 和 payload。

为什么任何人都能读取 JWT 的 payload?

payload 只是编码,不是加密。绝不要在 JWT 中放密码或机密。

exp、iat 和 nbf 是什么意思?

exp 是过期时间,iat 是签发时间,nbf 是生效时间(在此之前无效)。它们都是以秒为单位的 Unix 时间戳。

为什么使用 JWT 时用户会被随机登出?

通常是请求或标签页之间的刷新竞争、时钟差异、Cookie 设置,或服务器之间密钥不一致。

JWS 和 JWE 有什么区别?

JWS 经过签名但可读,大多数 JWT 都是这种。JWE 是加密的,没有密钥无法读取 payload。本工具只解码签名令牌。

JWT header 中的 alg 是什么?

签名算法,例如 HS256(共享密钥)或 RS256、ES256(私钥和公钥对)。服务器应只接受预期的算法。

JWT 的有效期应该多长?

访问令牌通常较短,从几分钟到一小时,再配合有效期更长的刷新令牌获取新令牌。短有效期能在令牌泄露时减少损失。

JWT 应该存放在浏览器的哪里?

很多应用把刷新令牌放在 httpOnly、Secure 的 Cookie 中,把短期访问令牌放在内存里,以限制恶意脚本能读取的内容。

可以修改 payload 后继续使用令牌吗?

不行。修改任何部分都会使签名失效,配置正确的服务器会拒绝该令牌。

相关内容