测试发现,只有 一个 alg 是必填的, 其他都是可选的! 可能是有默认值! 修改HEADER 丝毫不会影响 PAYLOAD,反之亦然!! 就是说 HEADER PAYLOAD 相互独立!!
alg: 有很多可选,但是不能随便qwer这样
iat: issued at, 只要是数字就可以, 随便填不会报错!
sub: 本意为主题,也是可选的
规范编码
|
对应Claims属性
|
值
|
iss
|
issuer
|
用户,JWT的签发者
|
sub
|
subject
|
主题,值为这个JWT的主题,入登录用户信息认证
|
aud
|
audience
|
受众群体,记录JWT的接受者
|
exp
|
expiration
|
JWT的过期时间
|
nbf
|
notBefore
|
时间,表示JWT在这个时间之前是不可用的
|
iat
|
issuedAt
|
JWT的签发时间
|
jti
|
id
|
JWT的ID,唯一标识
|
对于 RS 算法, payload 的admin 只能是 true false, 也就是说是 boolean
HEADER: 就是 ALGORITHM & TOKEN TYPE
PAYLOAD: 就是 DATA
SIGNATURE 就是专门VERIFY 用的
claim 是 设置 PAYLOAD 用的。 因此setPayload setClaims 不能同时设置!!
setSubject setAudience setNotBefore setIssuedAt setId setExpiration setIssuer 其实都是在 设置 claim
HEADER PAYLOAD 部分 还可以 随意设置 自定义的 属性字段, 但是 意义恐怕不大!