一、xxl-sso源码位置
https://github.com/xuexionghui/xxl-sso-master.git
二、源码解释:

三、启动认证授权中心(8080)
1、需要配置redis连接,且认证授权中心和客户端必须连接同一个redis地址

(注意:设置redis的一个方式:
找到
,找到getInstance方法,

)
四、启动认证客户端(分为8084、8085)
1、做hosts文件拦截

2、客户端1:8084端口:http://xxlssoclient1.com:8084/xxl-sso-web-sample-springboot/
3、客户端2:8085端口:http://xxlssoclient2.com:8085/xxl-sso-web-sample-springboot/
五、效果
在同一个浏览器内,对这两个客户端其中一个登陆了的话那么另外一个就会自动登录
六、原理图

七、原理流程
从client方面分析:
1、客户端请求先从浏览器中拿cookie中的cookieId
2、在没有拿到cookieId,即用户没有登录过的话,那么重定向到认证授权中心
链接:http://xxlssoserver.com:8080/xxl-sso-server/login?redirect_url=http://xxlssoclient1.com:8084/xxl-sso-web-sample-springboot/
问题: 为什么要有redirect_url地址? 在认证授权中心登录成功以后,回调到原来的请求地址(回调地址)
3、认证授权中心登录成功以后,在对应的域名下保存对应的cookieId信息
4、认证授权中心传递给客户端(子系统),带有xxl_sso_sessionid
5、回调到子系统的时候,进XxlSsoWebFilter拦截 获取xxl_sso_sessionid 信息
6、子系统使用xxl_sso_sessionid从redis查询认证授权系统登陆的用户信息,将用户信息在子系统域名下存放对应的用户Cookie信息,这样的 可以保证 认证授权系统和子系统双方Cookie信息同步
附带:其他其他子系统如何实现免密登陆的呢 (前提:已经有第一个客户端实现了登录了)?
第二个客户端(子系统)系统登陆的话,重定向到认证授权系统,从认证授权系统域名中获得Cookie信息,
直接把认证授权系统的cookie信息带参数返回给第二个客户端(子系统),第二个客户端(子系统)使用xxl_sso_sessionid从redis查询认证授权系统登陆的用户信息,将用户信息在子系统域名下存放对应的用户Cookie信息