JWT组成的部分

JWT

jwt底层组成部分

  1. 头部:
  2. Payload 装载的数据;
  3. 验证签名;
  • jwt和token最大的区别:
    token(在用户登录后会返回一个tokenid,key:tokenid,value:username)依赖于redis查询数据信息,token存放value数据比较安全,jwt不需要依赖于服务器端,将数据信息内容直接存放在客户端(浏览器)

JWT组成的部分

1.Header(头) 作用:记录令牌类型、签名算法等 例如:{“alg":"HS256","type","JWT}

2.Payload(有效载荷)作用:携带一些用户信息 例如{"userId":"1","username":"mayikt"}

3.Signature(签名)作用:防止Token被篡改、确保安全性 例如 计算出来的签名,一个字符串

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,从而回避重放攻击。
3.第三部分:Signature(签名)

JWT优缺点

优点

  1. 无需再服务器存放用户的数据,减轻服务器端压力
  2. 轻量级、json风格比较简单
  3. 跨语言

缺点
jwt一旦生成后期无法修改:
4. 无法更新jwt有效期
5. 无法销毁一个jwt
jwt 90天以后过期 提前60天过期

JWT的应用场景

前端分离项目、(移动app、小程序、H5)
Base64
Base64不是加密和解密 主要是 编码和解码 基于64个可打印字符来表示二进制数据
https://baike.baidu.com/item/base64/8545775?fr=aladdin
https://base64.us/
header 头部:
{
“typ”:“jwt”,
“alg”:“HS256”
}
ewoidHlwIjoiand0IiwKImFsZyI6IkhTMjU2Igp9
playload 存放的数据
{
“userName”:“mayikt”,
“age”:“28”
}
cGxheWxvYWQ=
secret=Base64(header .playload)
https://base64.us/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值