一、JWT简介
JWT(JSON Web Token)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。这种信息经过数字签名,因此可以验证和信任。JWT通常用于身份验证和授权,特别是在Web应用程序和服务之间。
二、JWT的组成
JWT由三部分组成,它们之间用点号(.
)分隔:
- Header(头部):包含令牌的类型(通常是JWT)和使用的签名算法(如HMAC SHA256、RSA等)。例如:
{
"alg": "HS256",
"typ": "JWT"
}
这部分内容经过Base64编码后形成JWT的第一部分。
-
Payload(载荷):包含需要传递的数据。这些数据通常是用户相关的声明(Claims),可以分为以下三种类型:
- 注册声明(Registered claims):如
iss
(发行者)、exp
(过期时间)、sub
(主题)等。 - 公共声明(Public claims):可以定义任何新的信息,但应避免与注册声明冲突。
- 私有声明(Private
- 注册声明(Registered claims):如