JWT token 认证原理

JWT token 分为三部分组成:
第一部分是头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature).
头部包含:1声明类型 这里是JWT 2声明加密的算法 通常直接用 HMAC SHA256加密
完整的头部就像下面这样的JSON:

{
‘typ’: ‘JWT’,
‘alg’: ‘HS256’
}
载荷(payload):包含用户的基本信息 ,因为base64是可以根据加密方式进行解密的,所以一般不保存敏感信息
签证(signature).:secret秘钥,只保存在服务器,秘钥非常重要不能泄露,是一个随机字符串
将头部进行Base64加密构成JWT token第一部分.载荷(payload)进行base64加密构成JWT token第二部分
将头部,荷载和签证拼在一起用HMAC SHA256加密,得到的字符串为JWT token第三部分

原理:如果用户解密出头部和荷载,更改了用户信息,服务器校验的时候用秘钥和客户端携带的头部和荷载通过HMAC SHA256加密得到JWT token的第三部分与用户携带的第三部分进行对比,不一样则认为是无效的JWT token,
HMAC SHA256加密是不可逆的,因为用户不知道秘钥所以无法更改第三部分
JWT token只保存在客户端,跟session不同,可以减少服务器的压力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值