微服务的会话保持

单点登录实现思想

        微服务项目因为有多个服务器组成,遇到了会话保持问题

在一个服务器上登录,能够让所有服务器知道当前用户的信息的解决方案就是单点登录

单点登录的办法有很多,但是实现思路主要有两种

1.Session共享

2.Token令牌

方法一:session共享

原理:让用户的登录信息共享给所有模块,用户登录时共享session

 上图采用session实现单点登录:

基本思路是将用户信息保存到Redis,哪个模块需要用户信息,从redis中取

优点:安全性高

          框架支持比较完善,代码编写量少。

缺点:

1.每个模块还有Redis都要消耗较多内存保存用户信息

2.当用户信息更新时,需要比较复杂的操作

方法二:Token令牌

原理 :客户端在登录的时候会生成一个令牌并返回,在之后的每一次请求的时候都会携带令牌

服务器对这个令牌进行解析,认证身份

上图是Token令牌的解决方案

基本思路是用户登录成功颁发令牌,由客户端保存

访问其它服务器时,客户端提供令牌,服务器验证

优点:

1.解放session,服务器不需要再因为用户信息占用内存

2.客户端保存令牌,方便响应客户端变化

缺点:

1.解析和颁发令牌需要Cpu消耗算力

2.绝对安全的业务,需要再次验证

这俩种单点登录的实现方式,各有优缺点,具体项目中还要根据实际项目进行选择

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ovideooos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值