-
结构: xxx.yyy.zzz
- Header(头部): 对 header 进行 base64 编码就得到 jwt 第一部分
- typ: token 类型
- alg: 签名的加密算法
- Payload(载荷): 对 payload 进行 base64 编码就得到 jwt 第二部分
- RFC 7519 标准定义的字段
- iss: Issuer 的简写, token 的举办发着
- sub: Subject 的简写, token 的主题
- aud: Audience 的简写, token 的接收目标
- exp: Expiration Time 的简写, token 的过期时间,时间戳格式
- nbf: Not Before 的简写, token 在这个时间之前不能被处理, 主要是纠正服务器时间偏差问题
- iat: Issue At 的简写, token 的颁发时间
- jti: JWT id的简写, 代表 token 的 id, 通常当不同用户认证时, 他们的 token jti 是不同的
- 用户可以在 payload 中添加自定义字段, 通常存一些全局的, 经常使用的, 安全要求不高的数据
- Signature(签名)
- 为得到签名,需要有编码过的 header, 编码过的 payload, 一个密钥以及在 header 中指定的加密算法, 然后对他们签名.
- 例如, 加密算法使用 HMAC SHA256, signature = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
- Header(头部): 对 header 进行 base64 编码就得到 jwt 第一部分