你的数据是 100% 私密的——JWT 完全在你的设备上解码和编码。
所有关于 JWT 的信息以及分步指南,帮助你在不同框架中验证 JWT。
JWT(JSON Web Token)是一种自包含且无状态的令牌,以结构化和可读的格式携带信息。无论你是保护 API 还是为应用程序采纳基于令牌的身份验证,JWTs 都是一个强大的工具,因为它们:
一个典型的 JWT 被分成三部分,每部分都使用 Base64URL 编码并用点(.)分隔:
这种结构使 JWT 可以在各方之间提供一种紧凑、安全的信息传输方式。
声明是有效载荷的一部分,持有关键信息。以下是标准化的注册声明供参考:
声明 | 全名 | 描述 |
---|---|---|
iss | 发行者 | 发布该 JWT 的实体,比如授权服务器。 |
sub | 主题 | 标识 JWT 的主题,通常代表经过身份验证的用户。 |
aud | 受众 | 指定哪些接收者可以接受和处理该令牌。这可以是多个受众的值数组或单个受众的单个值。 |
exp | 到期时间 | 在该时间之后令牌会失效。这有助于通过限制令牌的有效时间来防止重放攻击。 |
nbf | 在此之前无效 | 使令牌仅在该时间戳之后有效。在无法访问时钟的情况下很有帮助。 |
iat | 发行时间 | 令牌创建的时间。可用于确定令牌的年龄。 |
jti | JWT ID | 令牌的唯一标识符,有助于防止令牌多次使用(例如,在重放攻击中)。 |
根据规范和授权服务器的配置,可能在负载中包含其他声明以支持特定的使用场景。你还可以向 JWT 添加自定义声明以满足独特的业务需求。
在 OpenID Connect 中使用,包含关于经过身份验证用户的资料信息(例如,姓名、电子邮件等。)的声明。
在 OAuth 2.0 中使用,代表用户或应用程序授权访问特定资源或 API。
JWT 在以下场景中特别有帮助:
必须验证 JWT 的完整性,以确保其头部和载荷没有被篡改。以下是流行编程环境中验证 JWT 的分步 示例:
所有关于 JWT 的信息以及分步指南,帮助你在不同框架中验证 JWT。