JWT与session-cookie区别

session-cookie原理:

  1. 用户发送用户名密码给服务器
  2. 服务器检验通过后通过uuid或其他生成一个随机字符串作为sessionId,以该sessionId作为主键,内容为session详细数据,保存在服务器。可以保存在redis、单机session、数据库等地方。
  3.  把sessionId回传给浏览器,放在cookie中。
  4. 浏览器访问时,把sessionId提交给服务器,服务器根据sessionId查询到详细的session信息。

JWT原理:

  1. 用户发送用户名密码给服务器
  2.  服务器检验通过后生成Json格式的token信息,token信息包括JWT头(header), 有效载荷(payload), 签证(signature) .3部分之间用“.”号做分隔。
  3. 该json数据经过加密之后直接发送给浏览器,因为JWT是为了跨域访问设计的,所以token一般存在Header Authorization中,服务器不保存。
  4. 服务器收到前端发来的token之后,进行验证,验证通过则放行。

JWT缺点:

  1. JWT的最大缺点是服务器不保存会话状态,所以在使用期间不可能取消令牌或更改令牌的权限。也就是说,一旦JWT签发,在有效期内将会一直有效。
  2. JWT本身包含认证信息,因此一旦信息泄露,任何人都可以获得令牌的所有权限。为了减少盗用,JWT的有效期不宜设置太长。对于某些重要操作,用户在使用时应该每次都进行进行身份验证。
  3. 为了减少盗用和窃取,JWT不建议使用HTTP协议来传输代码,而是使用加密的HTTPS协议进行传输。
  4. 对于用户手动注销需要额外的过期处理,如黑名单。

总结:

JWT除了减少查database之外,其它任何问题都没有解决。还有需要额外CPU计算,难过期处理等难点,不建议使用JWT。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值