什么是 JWT?

JWT(JSON Web Token)是一种紧凑的、URL 安全的方式,用于在两方之间传递声明。JWT 中的声明被编码为 JSON 对象,并使用加密算法进行数字签名。

快速了解

全称JSON Web Token(JSON 网络令牌)
创建时间2010 年(2015 年在 RFC 7519 中标准化)
规范文档官方规范

JWT 工作原理

JWT 由三部分组成,用点号分隔:头部(Header)、载荷(Payload)和签名(Signature)。头部通常包含令牌类型(JWT)和签名算法(如 HS256、RS256)。载荷包含声明 - 关于用户和附加元数据的陈述。签名是通过编码头部和载荷,然后用密钥签名创建的。JWT 是自包含的,意味着所有必要信息都在令牌本身中,无需在验证时查询数据库。

主要特点

  • 自包含 - 令牌内携带所有必要信息
  • 紧凑 - 可通过 URL、POST 参数或 HTTP 头发送
  • 无状态认证 - 服务器无需存储会话数据
  • 数字签名 - 可验证完整性
  • 可加密(JWE)以保护机密性
  • 有过期时间(exp 声明)以确保安全

常见用途

  1. Web 和移动应用中的用户认证
  2. 跨多个域的单点登录(SSO)
  3. API 授权和访问控制
  4. 服务之间的信息交换
  5. 无状态会话管理

示例

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IuW8oOS4iSIsImlhdCI6MTUxNjIzOTAyMn0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

解码后的载荷:
{
  "sub": "1234567890",
  "name": "张三",
  "iat": 1516239022
}

QubitTool 相关工具

相关概念