跳到主要内容
ecdsa.com

JWT(JSON Web 令牌)

紧凑且 URL 安全的令牌(RFC 7519),携带由声明组成的 JSON 对象,以 JWS 形式签名或以 JWE 形式加密,用于 ID 令牌、访问令牌和许多 API 会话。
其他写法JSON Web TokenJWT tokenRFC 7519

已签名的 JWT 形如 header.payload.signature,每一部分都是不带填充的 base64url:头部指明算法(alg)、密钥(kid)和类型(typ),载荷包含 iss、sub、aud、exp、nbf、iat 和 jti 等声明(RFC 7519 §4.1)以及应用自定义声明。加密的 JWT 有五个部分。任何持有令牌的人都能读取已签名 JWT 的载荷:签名保护的是完整性,而不是机密性。

验证分为两步:先用验证者事先选定的算法和密钥验证签名,然后检查声明——颁发者、受众、过期时间(允许少量时钟偏差),以及令牌类型,以免在需要访问令牌的地方接受了 ID 令牌。RFC 8725(JWT Best Current Practices)列出了这些规则;大多数 JWT 漏洞都源于跳过了其中某一项。

算法的选择是一种权衡,详见 ES256 与 RS256 和 HS256 与 RS256。JWT 调试器可以在本地解码并验证令牌。

标准与参考资料

全部术语