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

摘要:
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%2FNoteleftof服务器端:9.处理登录请求,登录成功保存用户状态信息,同时把令牌返回出去,随便保存到cookie中,告诉别的系统已经登录过。服务器端-˃浏览器:10.1登录成功,重定向到http://client2.com:8081/xxl/?xxl_sso_sessionid=1000_c13b服务器端-˃浏览器:10.2浏览器保存cookie,xxl_sso_sessionid=1000_c13bNoterightof浏览器:11-0ssoserver.com这个域名带着所有cookie浏览器-˃客户端A:11浏览器进行跳转http://client2.com:8081/xxl/?

233-235

这3节就是手写xxl-sso,我就简单把流程图画了一下
谷粒商城单点登录(三十七)第1张
代码如下:

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太长了,被我删减一点。

免责声明:文章转载自《谷粒商城单点登录(三十七)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用node-http-proxy搭建代理java web 拦截器、过滤器理解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Cookie和Session详解

Session和Cookie详解 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。 Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 1.1  Cookie机制   在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都...

以JQuery的方式封装 cookie 方便调用

一.封装 jQuery.cookie = function(key, value, options) { //key and value given, set cookie... if (arguments.length > 1 && (value === null || typeof value !== "obje...

JavaWeb之Cookie和Session的区别

Cookie和Session的区别 一、cookie机制和session机制的区别 ************************************************************************************* 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态...

解决nginx使用proxy_pass反向代理时,cookie丢失的问题

1. 如果只是host、端口转换,则cookie不会丢失。例如:location /project {proxy_pass http://127.0.0.1:8080/project; } 通过浏览器访问http://127.0.0.1/project时,浏览器的cookie内有jsessionid。再次访问时,浏览器会发送当前的cookie。2. 如果路...

【postman】postman访问后端的post接口,设置Cookie的记录,设置Pre-request Script

postman访问后端的post接口,设置Cookie的记录,设置Pre-request Script 设置示例: pm.request.headers.add({ key: 'Cookie', value: 'ticket=CD7933EA05CC76573068CBC182D57DB907955093D8A2133B60BB3ECB48...

EditThisCookie插件的使用

1、微信环境的UA设置: 进入Chrome的控制台:Network--->More Tools-->Network conditions 设置User-Agent 的值为MircoMessenger 2、中Cookie的情况: 依次输入Cookie的名称、值、域名。...