码迷,mamicode.com
首页 > 其他好文 > 详细

无状态身份验证和有状态身份验证

时间:2018-08-03 14:42:03      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:res   注销   jwt   身份验证   上传   组合   对象   存在   cat   

有状态的:比如session,cookie,spring项目都用spring session实现redis存储session,或者用nginx + redis+tomcat实现负载均衡,使用ip_hash策略,能将来自同一IP的客户端请求派发给同一个服务实例,在分布式环境中,可以解决session不共享的问题。不要使用轮询策略。

无状态的:比如JWT(JSON Web Token),是可在网络上传输的用于声明某种主张的令牌(token),以JSON 对象为载体的轻量级开放标准(RFC 7519),是无状态的两种鉴权方式,组合产品包含shiro jwt和jwt spring security,因为shiro好像一直对restful不友好。

JWT的缺陷

JWT使用起来虽然简单方便,但它存在一个设计缺陷,即服务端无法主动注销token,所以jwt在安全性上不及session,实际开发中应谨慎使用。

如果要让服务端能够注销token,就要在服务端维持token状态,这又回到session机制了,所以在经常需要验证的场景中,建议还是使用session。

JWT这个缺陷决定了它更适合用在一次性token验证场景中,即token只使用一次就立即废弃掉,比如第三方登录授权。

无状态身份验证和有状态身份验证

标签:res   注销   jwt   身份验证   上传   组合   对象   存在   cat   

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/9413136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!