单点登录的三种方式

因为一个项目种有多个服务组成,每个服务都是独立的,如果登录的时候在一个服务种,那么其他的服务是显示不了的,所以就有了单点登录。

所谓单点登录就是一处登录,处处登录。

第一种方式:session广播机制实现

第一种当时的的原理是session的复制,就是在多个服务中有一个服务登录了之后,就会把它存到session中,然后session复制到给其他的服务。这种的做法可以做到小规模的应用,如果服务上百个的话,复制起来很浪费资源,而且存的东西也都是一样的,过于浪费

 第二种方式:使用cookie + redis实现

 一、在项目种任何一个模块中登录,把数据放到两个地方
    1、redis-->
        在key中:生成唯一随机值(比如利用ip、用户id生成等)。
        在value中:存用户的数据
    2、cookie-->把redis里面生成的key值放到cookie里面    
    
二、访问项目中的其他模块,发送请求带着cookie进行发送,获取cookie值,拿着cookie做事情
    1、把cookie获取的值,到redis中进行查询,根据key进行查询,如果查询到数据就是登录

 第三种方式、使用token实现

 一、在项目中某个模块进行登录之后,按照自己定义的规则生成字符串。把登录之后的用户包含到生成的字符串里面,把字符串进行返回
    1、可以把字符串通过cookie返回
    2、把字符串通过地址栏返回
二、再去访问项目其他模块,每次访问在地址栏带着生成的字符串,在访问模块里面获取地址栏字符串,根据字符串获取用户信息。如果可以获取到就是登录

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java+每天进步亿点点

一起学习一起进步一起高薪

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

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

打赏作者

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

抵扣说明:

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

余额充值