一、组成
1、header(头部):
{
Typ="jwt" ---类型为jwt
Alg:"HS256" ---加密算法为hs256
}
2、playload(携带的数据):
iss:jwt签发者
sub:jwt所面向的用户
aud:接收jwt的一方
exp:jwt的过期时间,必须大于签发时间
nbf:定义在什么时间之前,该jwt都是不可用的
iat:jwt的签发时间
jti:jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击
以上为标准中注册的声明,建议但不强制使用,不能存放敏感数据
例:{
"userId":"1234"
"userName":"lly"
}
3、Signature(验证签名)
二、优缺点
1、无需在服务端存放用户数据,减轻服务端压力
2、轻量级,风格简单
3、跨语言
4、一旦生产无法修改
5、无法更新jwt有效期
6、无法销毁一个jwt