JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用间安全地传递信息。它由三部分组成:Header(头部)、Payload(载荷)和 Signature(签名),每部分使用 Base64URL 编码,用点号(.)连接。
• Header:包含 Token 类型(typ)和签名算法(alg),如 {"alg":"HS256","typ":"JWT"}
• Payload:包含 Claims(声明),如用户ID(sub)、签发者(iss)、过期时间(exp)、签发时间(iat)等
• Signature:使用 Header 中指定的算法和密钥对 Base64(Header) + "." + Base64(Payload) 进行签名
• iss(Issuer):签发者,标识签发该 JWT 的主体
• sub(Subject):主题,标识该 JWT 所面向的用户或实体
• aud(Audience):受众,标识接收该 JWT 的受众
• exp(Expiration Time):过期时间,超过该时间 Token 将失效
• iat(Issued At):签发时间,记录 Token 何时被创建
• nbf(Not Before):生效时间,在该时间之前 Token 不可用
• jti(JWT ID):唯一标识符,用于防止 Token 被重放攻击
本JWT Token解析工具操作简单且功能完善,以下是详细的使用指南:
粘贴Token:将需要解析的JWT Token字符串粘贴到输入框中。JWT的标准格式为三个Base64URL编码的字符串,用两个点号分隔,例如:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMe...。工具支持常见的HS256/RS256/ES256等算法生成的Token。
一键解析:点击「解析 Token」按钮,工具会自动将JWT拆分为Header、Payload和Signature三部分。Header和Payload会被Base64URL解码并以格式化JSON的形式展示,方便你查看其中的每个字段。Signature部分会原样显示,并提示前端无法验证签名。
查看Claims:解析完成后,Payload区域下方会以卡片网格的形式展示所有Claims的键值对。对于时间相关的Claims(如exp、iat、nbf),工具会自动转换为人类可读的本地日期时间格式,并显示距离当前时间的相对时间(如"2小时后过期")。如果Token已过期,会显示醒目的红色「已过期」标签。
复制功能:每个部分右侧都有「复制」按钮,点击即可将该部分的原始Base64编码字符串复制到剪贴板,方便你在其他调试工具中使用。
JWT Token解析工具在Web开发和API调试中应用广泛,以下是几个典型的使用场景:
API接口调试:在开发RESTful API时,前后端通常使用JWT进行身份认证。当接口返回401未授权错误时,开发者可以使用本工具快速解析请求头中的Authorization字段,检查Token是否已过期、audience是否正确、或者claims中是否包含了必要的权限信息。这比手动拆分和Base64解码节省大量时间。
单点登录(SSO)排查:企业级应用常使用OAuth2.0/OpenID Connect进行单点登录。当用户反馈"登录后很快掉线"或"某些系统无法登录"时,运维人员可以获取用户的ID Token或Access Token,使用本工具解析其中的exp(过期时间)、iss(签发者)和sub(用户ID),快速定位是Token过期、签发者不匹配还是用户ID映射错误导致的问题。
微服务间调用链路追踪:在微服务架构中,服务间通过JWT传递用户身份和权限上下文。当某个下游服务报权限不足时,开发者可以解析上游服务转发过来的JWT,检查Payload中的scope或roles claims是否完整,排查是Token生成环节还是传递环节丢失了必要的权限声明。
第三方SDK集成调试:集成Firebase Auth、Auth0、AWS Cognito等身份验证服务时,这些服务返回的Token均为JWT格式。开发者可以使用本工具解析这些Token,确认其中的自定义claims(如用户角色、订阅等级)是否符合预期,帮助快速定位集成配置问题。
Base64URL vs Base64:JWT使用的是Base64URL编码,而非标准Base64。两者的区别在于Base64URL将标准Base64中的+替换为-,/替换为_,并去除了末尾的=填充字符。这是因为JWT经常出现在URL中,而+和/在URL中有特殊含义。本工具在解析时会正确处理Base64URL的解码。
JWT的安全性:虽然JWT自带签名可以防止篡改,但它不是加密的——任何人都可以解码Header和Payload看到其中的内容。因此不要在JWT的Payload中存放密码、密钥等敏感信息。如果需要保护Payload内容,应使用JWE(JSON Web Encryption)对JWT进行加密,或者通过HTTPS传输JWT。
JWT与Session的对比:传统的Session认证将用户状态存储在服务端,通过Cookie中的Session ID关联。JWT则是无状态的——所有必要信息都在Token本身,服务端无需存储Session。这使得JWT特别适合分布式系统和微服务架构,但也带来了Token无法提前撤销(除非使用黑名单)和Payload体积较大的问题。选择Session还是JWT取决于具体的架构需求。
刷新Token机制:为了防止Access Token长期有效导致的安全风险,实践中常采用双Token策略:Access Token有效期短(如15分钟),Refresh Token有效期长(如7天)。当Access Token过期时,客户端使用Refresh Token向认证服务器换取新的Access Token。本工具可以帮助你解析这两种Token,确认它们各自的过期时间和作用域配置是否正确。
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用间安全地传递信息。它由Header、Payload和Signature三部分组成,每部分使用Base64URL编码,用点号连接。JWT常用于用户认证、信息交换和单点登录(SSO)场景。
不会。本工具完全在浏览器前端运行,所有解析操作都在本地完成,Token数据不会上传到任何服务器。你可以放心粘贴需要调试的JWT Token。
本工具可以解析和展示JWT的Header、Payload和Signature结构,并检查Base64URL编码格式是否正确。但由于签名验证需要服务器端的密钥(Secret Key),前端工具无法完成真正的签名验证。如需验证签名,请在服务端使用对应的密钥进行校验。
如果JWT的exp(过期时间)Claim显示已过期,你需要向认证服务器申请新的Token(通常通过刷新Token refresh_token)。在开发环境中,你也可以生成一个新的JWT用于测试。
不是。JWT的Payload使用Base64URL编码,不是加密。任何人都可以解码看到其中的内容。请勿在Payload中存放密码、密钥等敏感信息。如需加密,应使用JWE(JSON Web Encryption)。
标准的JWT必须由三个部分组成,用两个点号分隔。如果Token缺少点号或包含非法字符,工具会提示格式错误。请确认粘贴的是完整的JWT字符串(包括Header、Payload和Signature三部分),没有多余的空格或换行。
本工具可以解析所有标准JWT格式的Token,包括HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384、ES512等算法签名的Token。工具只负责解码和展示结构,不验证签名,因此支持所有算法。
JWT中的exp等时间Claims使用Unix时间戳(秒数),表示自1970年1月1日UTC起的秒数。本工具会将其自动转换为你本地时区的日期时间。如果你看到的时间与预期不同,请检查时区设置是否正确。