1.单点登录的概念
单点登录–Single Sign On(SSO),在多个应用服务(跨服务,跨服务器)中,用户只需要登录一次就可以访问所有相互之间信任的服务,是目前比较流行的企业业务整合的解决方案之一。
2.单点登录的应用场景
因为现在各公司的业务越来越复制,服务拆分也导致服务越来越多,还有搭建服务集群的关系,导致使用传统的登录方式不满足需求。
3.传统的登录方式
通过登录页面根据用户名查询用户信息,判断密码是否正确,正确则将用户信息写到session,访问的时候通过从session中获取用户信息,判断是否已登录,登录则允许访问。
4.传统登录方式存在的问题
由于session不能共享,服务越来越多,并且还服务还搭建集群,导致每访问另外一个服务都需要重新登录。
5.解决办法
1.可以使用tomcat的共享session,但是需要在tomcat里面配置,原理是每个tomcat服务器都会不断的广播自己的session,那么就可以实现session共享的问题;但是会有两个问题存在:服务的集群数量多的话广播session占用的资源也会比较多,并且不能解决跨服务器的session共享的问题;
2.把session保存到redis里面,使用同一个redis服务器来实现session共享的问题;
6.单点登录的整体流程思路
7.备注
单点登录需要做成一个webService,一个单独的登录服务;
1.数据校验接口
2.注册接口
3.登录接口
4.根据token查询用户接口
5.安全退出