单点登录系统怎么实现的,单点登录系统实现的原理

单点登录系统怎么实现的

单点登录系统就是指在一个系统登录,在与其相关联的系统就不用登录无非就是session共享的问题

Session共享问题你们是如何解决的?

  其实seesion的共享问题分为集群的session共享和分布式的session共享。他们的主要区别是,是多个系统还是单个系统。

     如果是单个系统的那么就是集群的session共享,只要的解决方案有

   1.cookie携带,但是这样不安全,而且cookie的大小是有限制的

2.session的绑定,比如说在nginx上做一个ip_hash,让同一个ip访问指定的服务器,这样也可以解决,但是用户的单点问题。体验区不好。

3.session的复制(tomcat实现,其实就是修改一个配置文件。由tomcat自己去做session的复制。如果机器少可以tomcat复制压力小,但是机器多的时候就会给服务器造成压力)

4.第三方保存(redis {String[key,value ],可以对key设置生存时间}+cookie) 

如果是分布式,比如购物车和订单系统,当用在购物车系统登录后在购物车中进行结算操作,这时候就会调用订单系统,这时候订单系统就必要要知道用户的信息。这个过程就是分布式的session共享问题,我们采用的是单点登录系统实现的。其实单点登录系统就是“redis+cookie”实现的。到用户在单点系统登录后,单点登录系统会将用户的身份信息,存放到redis中,并且给客户端种一个token, 这样任何一个需要登录的系统,主要配置一个拦截器然后用客户提交的token调用单点登录系统换取用户信息,从而完成了分布式的seesion共享问题

                                    

猜你喜欢

转载自blog.csdn.net/yuanaili/article/details/81191431