乐闻世界logo
搜索文章和话题

什么是 JWT,它由哪几部分组成

2026年2月21日 17:53

JWT (JSON Web Token) 是一种开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。JWT 由三个部分组成,通过点(.)分隔:

  1. Header (头部):包含两部分信息:令牌类型(通常是 JWT)和使用的签名算法(如 HS256、RS256 等)。Header 是一个 JSON 对象,经过 Base64Url 编码。

  2. Payload (载荷):包含声明(Claims),即关于实体(通常是用户)和其他数据的声明。声明分为三类:

    • 注册声明(Registered Claims):如 iss(签发者)、exp(过期时间)、sub(主题)、aud(受众)等
    • 公共声明(Public Claims):可以自定义,但应避免冲突
    • 私有声明(Private Claims):在同意使用它们的各方之间共享信息的自定义声明 Payload 也是 JSON 对象,经过 Base64Url 编码。
  3. Signature (签名):用于验证消息在传递过程中未被篡改。签名是通过将编码后的 Header 和 Payload 用点连接,然后使用 Header 中指定的算法和密钥进行签名生成的。

JWT 的完整格式为:Header.Payload.Signature

例如:

shell
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

JWT 的主要特点:

  • 紧凑:可以通过 URL、POST 参数或 HTTP header 发送
  • 自包含:包含所有必要信息,减少数据库查询
  • 跨语言支持:多种编程语言都有实现
  • 无状态:服务器不需要存储会话信息

JWT 常用于身份验证和信息交换,特别适合分布式系统的单点登录(SSO)场景。

标签:JWT