单点登录
项目分为三个模块
server
client2
client1
server提供的接口
/user /tologin /login /logout
client提供的接口
/user
登录流程介绍
用户从浏览器发出/user请求到client1
client1的拦截器拦截到用户未登录,则转发到server的/tologin,显示一个登陆界面
用户点击登录后,server将用户作为token保存到cookie中,将token作为key,password作为value保存到redis中,然后通过回调地址返回client1客户端
client1的拦截器拦截到回调回来的请求时,将token保存到client1对应的cookie中,在控制层通关过个体请求请求server的/user接口,server中通过redis获取用户信息并返回,然后展示在/user对应的页面中
client1登录完成
用户从浏览器发出/user请求到client2
client2的拦截器拦截到用户未登录,则转发到server的/tologin,server发现cookie中有token则直接将token返回给client2
client2的拦截器拦截到回调回来的请求时,将token保存到client2对应的cookie中,在控制层通关过个体请求请求server的/user接口,server中通过redis获取用户信息并返回,然后展示在/user对应的页面中
client2登录完成
退出流程
首先server在各个子系统登陆时都要保存子系统的cookie,方便在退出时把所有的子系统的cookie都删除
然后通过token删除对应的redis中的数据
最后返回登录界面
https://github.com/cdy1996/sso