单点登录和分布式登入用户状态储存
session
http协议是面向无状态无连接的,所以当用户登入之后需要用session记录用户的登入状态,服务端储存一个session,用户端也存放一个cookie,其中存放sessionID
当用户再次访问时,根据session可以判断用户登录状态以及用户信息。
在单点登录状态下,只有一台服务器。
当多台服务器出现时,会出现nginx来进行分发请求,进行负载均衡,就会出现问题,此时一个服务器存储着用户的session,而其他服务器没有存储用户的session。当用户请求过来时,通过nginx将不同用户的请求分发到不同的服务器上面,此时就会出现其他服务器没有用户session。
解决办法:
一,session黏贴:将对应客户端ip的请求只打到对应的服务器。缺点:分布式系统的好处就在于,一台服务器挂了可以把请求打到其他服务器上面。这样的话,这台服务器挂了,这个客服端的登入信息就会消失。
二,将session同步到其他服务器上。缺点:可能出现同步不及时,此时用户请求已经过来,但是这个服务器还没有同步过来,将会出现判断用户未登入。而重新生成新的session。这时复制的session也过来了,就会出现session混乱、
三,将session放到redis上面集中存储。缺点:服务器越来越多,造成redis压力很大
基于无状态的token方式
有用户请求请求到nginx,nginx将请求放到服务器上面,在服务器上面登录后会生成一个token,这个token会保存用户的全部信息,将这个token返回给用户,这样不在服务器上面存放用户信息,服务器的状态变化就对用户没有影响
缺点:用户信息全部放在用户端,可能会造成用户信息的泄露。
网络传输不安全可能会造成用户信息的泄露
解决办法:中间加一个层
综上
单点登入会选择session
分布式情况会选择token
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhaec
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01