JWT简介一

  1. 概念
    JSON Web Token (JWT) 是一个非常轻巧的规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. 无状态
    好处: 不需要服务器端存session了
    特点: 可以被看到,但是不能篡改,因为第三部分用了秘钥
    一个JWT实际上就是一个字符串,它由三部分组成 : 头部(header), 载荷(payload) ,签名(signature)
    如 xxx.yyy.zzz

  2. 头部(Header)
    头部用于描述关于该JWT的最基本信息,如类型,及签名用的算法等.是一个json对象

{
  "typ": "JWT",
  "alg": "HS256"
}

在头部指明 了签名算法是HS256算法,我们进行base64编码如下

ewogICJ0eXAiOiAiSldUIiwKICAiYWxnIjogIkhTMjU2Igp9
  1. 载荷(payload)
    载荷就是存放有效信息的地方,定义一个payload如下:
{
  "sub": "3070",
  "name": "srr",
  "age": 18
}

获取将其进行base64加密,得到jwt的第二部分

ewogICJzdWIiOiAiMzA3MCIsCiAgIm5hbWUiOiAic3JyIiwKICAiYWdlIjogMTgKfQ==
  1. 签证(signature)
    jwt的第三部分是一个签证信息,这个签证信息由三部分组成 :
1. header(base64编码后的)
2. payload(base64编码后的)
3. secret(俗称盐)

这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后构成了jwt的第三部分

hs256("ewogICJ0eXAiOiAiSldUIiwKICAiYWxnIjogIkhTMjU2Igp9.ewogICJzdWIiOiAiMzA3MCIsCiAgIm5hbWUiOiAic3JyIiwKICAiYWdlIjogMTgKfQ==",secret)

将这三部分用.连接成一个完整的字符串构成了最终的jwt

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIzMDcwIiwic3ViIjoi5rWL6K-Vand0IiwiaWF0IjoxNjc5OTA5NTg3fQ.kDeXfse-jwXeGnoe-W2fwwLLy7eqgQNyQZxsoe6CCgw
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值