文章目录
- 一、介绍
一、介绍
JWT(JSON Web Token)是一种开放标准(RFC 7519)的方法,用于在双方之间安全地传输信息。这些信息可以是验证、授权、信息交换等。JWT 通常被用于在客户端和服务器之间传递用户信息,特别是在无状态的 RESTful API 架构中。
JWT 的主要组成部分包括:
- Header(头部):描述了 JWT 的元数据,比如其类型(通常是 JWT)以及签名所用的算法(如 HMAC SHA256、RSA 等)。
{ "alg": "HS256", "typ": "JWT"
}
这个 JSON 对象会被 Base64Url 编码,形成 JWT 的第一部分。
- Payload(负载):包含了需要传递的数据。JWT 规范规定了七个官方字段,但你也可以添加自己的私有字段。这些字段都是可选的:
iss (issuer):签发人
exp (expiration time):过期时间
sub (subject):主题
aud (audience):受众
nbf (Not Before):生效时间
iat (Issued At):签发时间
jti (JWT ID):编号
除了官方字段,你还可以在这个部分定义私有字段,例如:
{ "sub": "1234567890", "name": "John Doe", "admin": true, "iat": 1516239022
}
这个 JSON 对象也会被 Base64Url 编码,形成 JWT 的第二部分。
- Signature(签名):
- 使用服务器上的密钥(Secret Key)和指定的签名算法(如HMAC SHA256),对编码后的Header和Payload进行签名。
- 签名的作用是确保JWT的完整性和真实性,防止数据被篡改。
- 签名结果也是一个Base64Url编码的字符串。