Skip to content

🔐 JWT (JSON Web Token)

JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。

🔨 令牌结构

JWT 令牌由三个部分组成,使用点号(.)分隔:

header 部分是 JSON 对象,通常是这个下面的样子

json
{
  "alg": "HS256",
  "type": "JWT"
}

Payload

Payload 部分是一个 JSON 对象,用于存放实际需要传递的数据。该对象需要通过 Base64URL 算法转换成字符串。

JWT 规范定义了以下 7 个标准字段(注册声明):

字段全称描述
issIssuer签发人/发行者
expExpiration Time令牌过期时间
subSubject主题
audAudience受众
nbfNot Before生效时间
iatIssued At签发时间
jtiJWT ID令牌唯一标识符

💡 提示: 除了标准字段外,你还可以添加自定义的私有字段来传递额外信息。

⚠️ 由于 JWT 默认不加密,payload 中的信息对任何人都是可读的,因此不要在其中存放敏感信息。

Signature (签名)

Signature 部分是对前两部分(Header 和 Payload)的数字签名,用于验证消息的完整性,防止数据被篡改。