首页文本与开发 › JWT 在线解析

JWT 在线解析

粘贴 JWT 令牌,立即解出头部和载荷的美化 JSON,自动把签发、过期时间转成本地时间并判断是否过期。

解析完全在你的浏览器中完成,令牌不会发送到任何服务器;但仍建议不要在公共电脑上粘贴生产环境的令牌。

JWT 的三段结构

JWT(JSON Web Token)由三段 Base64URL 编码的文本用点号连接而成:头部、载荷和签名。头部是一个 JSON,声明签名算法 alg(常见 HS256、RS256)和类型 typ;载荷也是 JSON,放业务数据和标准声明,常用的有 iss 签发者、sub 主体、aud 接收方、exp 过期时间、nbf 生效时间、iat 签发时间、jti 唯一编号,时间全部是从 1970 年起算的秒数;签名是对前两段按头部声明的算法和服务端密钥计算出来的,用来保证内容没有被篡改。

这里有个关键认知:前两段只是编码不是加密,任何人拿到令牌都能直接读出里面的内容,本页做的就是这件事。所以载荷里绝不能放密码、身份证号、银行卡号这类敏感信息。签名保证的是“不可伪造”,不是“不可阅读”。如果确实需要内容保密,应当使用 JWE 加密格式,那种令牌有五段,本工具无法解析。

校验、过期与常见问题

本页只做解码,不做签名校验,因为校验需要服务端的密钥或公钥。真实的验证必须在服务端完成,而且要显式指定允许的算法,防止攻击者把 alg 改成 none,或者把 RS256 换成 HS256 用公钥当密钥来伪造签名。后端同时还应检查 exp、nbf 以及 iss、aud 是否符合预期。

过期时间是排查登录问题的重点。工具会把 exp、iat、nbf 换算成你电脑的本地时间并给出剩余时长。如果显示已过期,通常需要用刷新令牌换一个新的;如果显示还有很久却仍然报 401,多半是服务器与客户端时钟不同步,或者校验用的密钥不对。另外 JWT 一旦签发就无法单独撤销,退出登录只是让前端丢弃它,想让它立即失效需要在服务端维护黑名单,或者把有效期设得很短再配合刷新令牌。粘贴时注意去掉请求头里的 Bearer 前缀和换行,本工具会自动清理这些空白字符。

常见问题

这个工具会上传我的令牌吗?

不会。解析完全在浏览器里用 atob 完成,页面没有任何网络请求。但生产环境的令牌相当于密码,请勿在公共电脑上粘贴。

为什么不校验签名?

校验需要服务端的密钥或公钥,把密钥填进网页既不安全也没有必要。签名验证应当在服务端完成。

载荷里的中文为什么能正常显示?

Base64URL 解码后按 UTF-8 还原文本,所以中文、emoji 都能正确显示。若出现乱码,说明签发方使用了非 UTF-8 编码。

令牌过期了怎么办?

用刷新令牌换取新的访问令牌,或者重新登录。JWT 本身无法续期,只能重新签发。