JSON Web Token是作为多服务鉴权而存在的一个令牌(解决了多服务的鉴权问题)
组成
BASE64加密之后,分隔符为".",格式为(头部).(数据载体).(签名)
头部
指定了令牌类型和令牌签名算法
{“typ”:“JwT”,“alg”:“HS256”}
typ为令牌类型,alg为令牌签名的算法
载荷(数据载体)
定义了JWT的基本信息
- 标准声明
key | value |
---|---|
iss | jwt签发者 |
sub | 当前令牌描述说明 |
aud | 接受jwt的一方 |
exp | jwt的过期时间,这个过期时间必须要大于签发时间 |
nbf | 定义在什么时间之前,该jwt都是不可用的 |
iat | jwt的签发时间 |
jti | jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击 |
- 公共声明(不参与令牌校验)
自定义的属性
- 私有声明(不参与令牌校验)
敏感信息(需要加密)
签证
用于验证数据是否被篡改
头(base64)+体(base64)+密钥(盐)-》根据头部加密算法(HS256)=签名