谷粒商城单点登录(三十七)

233-235

这3节就是手写xxl-sso,我就简单把流程图画了一下

代码如下:

Title: XXL-SSO流程
浏览器->客户端A: 1.访问:http://client2.com:8081/xxl/
Note left of 客户端A: 2.经过XxlSsoWebFilter,判断释放有用户登录过
客户端A->浏览器: 3.没有登录的话重定向到http://ssoserver.com:8080/xxl/login?redirect_url=http://client2.com:8081/xxl/
浏览器 -> 服务器端: 4.访问登录页http://ssoserver.com:8080/xxl/login?redirect_url=http://client2.com:8081/xxl/
服务器端-> 服务器端: 5.判断是否登录过,关键是cookie和xxl_sso_sessionid
服务器端-> 浏览器: 6.浏览器显示登录页
浏览器-> 浏览器: 7.输入账号密码进行登录
浏览器->服务器端: 8.提交登录请求 http://ssoserver.com:8080/xxl-sso-server/doLogin?username=user&password=123456&redirect_url=http%3A%2F%2Fclient2.com%3A8081%2Fxxl%2F
Note left of 服务器端:9.处理登录请求,登录成功保存用户状态信息,同时把令牌返回出去,随便保存到cookie中,告诉别的系统已经登录过。
服务器端 ->浏览器:10.1登录成功,重定向到http://client2.com:8081/xxl/?xxl_sso_sessionid=1000_c13b
服务器端 ->浏览器:10.2浏览器保存cookie,xxl_sso_sessionid=1000_c13b
Note right of 浏览器:11-0ssoserver.com这个域名带着所有cookie
浏览器 -> 客户端A:11浏览器进行跳转http://client2.com:8081/xxl/?xxl_sso_sessionid=1000_c13b
客户端A -> 客户端A:回到步骤1
浏览器 -> 客户端B:12.http://client2.com:8081/xxl/,当一个新的客户端去请求时判断逻辑都是一样的。

注:3中的参数redirect_url,是为了登录以后在跳回客户端A

1.如果参数有xxl_sso_sessionid,查到用户放在session中;

2.session里面有也是登录的

image-20200721230820712

image-20200721231752893

注:就是想用markdown画一个时序图,请求的url太长了,被我删减一点。

posted @ 2020-07-22 00:02  天宇轩-王  阅读(710)  评论(2编辑  收藏  举报