极简工具箱

免费在线工具 · 本地计算 · 无需上传

JWT 是什么:怎么解码与看懂过期时间

登录之后后端返回一长串用点号分隔的字符串,复制出来看不懂、又想知道什么时候过期——这就是 JWT。本文讲清它的三段结构、各字段含义,以及「解码」和「验签」到底差在哪。

广告位(百度联盟)

一、JWT 的三段结构

JWT(JSON Web Token,RFC 7519)是一个紧凑的自包含令牌,形如:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

用点号 . 分成三段:

三段都用 Base64URL 编码(标准 Base64 把 + 换成 -、/ 换成 _,并去掉末尾 = 填充),所以它只是「编码」,不是「加密」。

二、解码 ≠ 验签

这是最重要的概念:任何人拿到 JWT 都能 Base64URL 解码出 Header 和 Payload 的明文,不需要密钥。签名的作用是让服务端能验证「这段内容没被改过」,而不是让内容保密。所以:

因此把 JWT 贴进在线解析工具看结构是可以的(本地工具更安全),但绝不能把生产环境的有效 token 贴到第三方网站——那等于把登录凭证交出去。本站 JWT 解析工具 全部在浏览器本地解码,不上传数据。

三、常见 Payload 字段

exp、iat、nbf 都是秒级 Unix 时间戳(10 位),不是毫秒,也不是日期字符串。用 时间戳转换 把 exp 转成日期,就能立刻知道 token 什么时候失效。注意有些框架签发的是 13 位毫秒值,属于自定义实现,解析时要看位数。

四、安全注意事项

五、调试流程建议

拿到 token 后:先本地解码确认三段是否完整、Header 算法是否符合预期;再把 exp / iat 转成可读时间判断是否过期;如果接口仍返回 401,问题多半在验签密钥、iss/aud 不匹配或服务器时钟偏移,而不是 token 本身格式有误。需要自己造签名做接口联调时,可以配合 HMAC 生成 与 Base64 编解码 复核编码结果。

小结

JWT = Base64URL 编码的三段明文 + 一段防篡改签名;解码是给人看的,验签是给服务端判的;exp 是秒级时间戳。把这三点分清楚,调试登录态会顺畅很多。

本文相关工具(本地计算,无需上传)

更多使用教程