要点
- 01解码任何JWT并在一次粘贴中检查头、有效负载和标准声明。
- 02exp、nbf和iat声明被转换为可读的时间戳,带有有效/过期标签。
- 03解码完全是本地的——在调试时安全地粘贴真实生产令牌。
- 04解码器不验证签名——那必须在服务器端使用发行者的密钥进行。
为什么你需要JWT解码器
JSON Web令牌看起来像随机噪声,直到你知道它们是由点分隔的三个Base64URL编码的段。第一个段是头(算法和令牌类型),第二个是有效负载(声明:用户ID、角色、到期),第三个是签名。调试认证问题、过期的会话或破坏的OAuth集成时,你需要做的第一件事是读取有效负载。
手工做那意味着在点上分割、解码Base64URL并将Unix时间戳转换为可读日期。Handytool的JWT解码器自动完成所有这些工作,并在时间声明上添加有效性标签,以便你一眼就能看到令牌是否仍然活跃。
如何解码JWT令牌
- 01
复制JWT
从你的浏览器的DevTools(应用程序>Cookie或网络面板授权头)、日志文件或API客户端中获取令牌。
- 02
将其粘贴到解码器中
将完整令牌(包括由点分隔的所有三个段)粘贴到输入框中。解码器自动识别段。
- 03
读取头和有效负载
该工具分割令牌并以格式化JSON形式美化打印头(算法、类型)和有效负载(所有声明)。
- 04
检查时间声明
exp(到期)、nbf(不早于)和iat(签发时间)Unix时间戳被转换为ISO日期。解码器根据你当前的本地时间将exp标记为绿色(有效)或红色(过期)。
标准JWT声明解释
这些注册的声明名称出现在大多数JWT中。
- 01iss(发行者)——标识谁创建了令牌,通常是URL或服务名称。
- 02sub(主题)——令牌代表的主体,通常是用户ID。
- 03aud(受众)——令牌的预期接收者;你的服务器应拒绝为他人发送的令牌。
- 04exp(到期)——令牌必须被拒绝的Unix时间戳。
- 05nbf(不早于)——令牌必须被拒绝的Unix时间戳。
- 06iat(签发时间)——令牌被制造的Unix时间戳;用于检测陈旧令牌很有用。
调试时安全地粘贴真实令牌
JWT解码完全在你的浏览器中使用原生atob函数和JSON.parse进行。没有东西被传输到任何服务器——你的令牌在内存中解码并本地显示。你可以安全地粘贴来自开发或暂存环境的真实访问令牌和会话令牌来调试认证流。
也就是说,像对待密码一样对待JWT。它们在其完整生命周期内授予对你的系统的访问权限。除非你对该工具的隐私保证充满信心,否则不要将生产令牌从高特权账户粘贴到任何工具中——并且如果你认为令牌可能已被暴露,始终轮换令牌。
JWT解码器常见问题
什么是JWT?
JSON Web令牌是一个紧凑的URL安全格式,由由点分隔的三个Base64URL段(头、有效负载、签名)组成。JWT携带声明——关于用户或会话的断言——并用于认证、授权和API访问。
此解码器是否验证JWT签名?
不是。解码器仅解析头和有效负载。签名验证需要发行者的秘密或公钥,必须在你的应用程序代码中使用可信库进行。
将真实访问令牌粘贴到这里是否安全?
解码完全是本地的——令牌永不被传输。然而,JWT授予真实访问权限,所以像对待密码一样对待它们。不要分享它们,不要将其提交到源代码管理,如果它们可能已被暴露,旋转它们。
exp声明意味着什么?
exp是到期时间戳——一个Unix整数,代表令牌停止有效的时刻。解码器将其转换为可读的ISO日期,并根据你的当前本地时间将其标记为有效或过期。
为什么JWT有效负载在没有密钥的情况下可见?
JWT有效负载是Base64URL编码的,而不是加密的。它们被设计为可读的——签名仅证明真实性,而不是机密性。除非你使用JSON Web加密(JWE),否则永远不要在JWT有效负载中放置真正的秘密数据。
解码器是否免费?
是的。Handytool免费,无需注册、无速率限制、无数据收集。