企业多域名下解决同步登录的demo–单点登录示例

2019年10月28日 0 条评论 1.35k 次阅读 2 人点赞

引言

开篇先引入这么一个需求,一个集团公司下有许多子公司,而子公司都有各自的网站。公司之间的顶级域名都是不相同的,例如A公司的域名为:www.a.com,B公司的域名为www.b.com。但因为他们隶属于同一个集团,因此,我想让用户登录A公司的网站后,第二次点击B公司的网站时自动同步登录状态,而不是让用户再去点击登录B公司的按钮。

就好比百度这么一个集团下有百度贴吧、百度文库等网站,且他们之间的顶级域名是不相同的,那么我如何做到,当我登录百度贴吧时,下一次点开百度文库的网站,他是自动登录,而不是用户再次在导航栏上点击登录呢?

此刻有不明真相的同学可能会回答,用session或者cookie,他们的想法是当用户登录A公司网站后将登录信息存入session,然后进入B公司网站取出session判断用户是否登陆。

很显然这种方案是不成立的,因为session和cookie在不同的顶级域名下是做不到共享的,也就是说我登录了A网站后在session中存入的用户信息,B网站是获取不到的。

因此我在此做了一个demo来解释这个功能是如何实现的

首先请看实现的视频演示

不同域名下的同步登录实现

具体实现原理都在下图中了,我已经把实现的demo也上传至gitee中了,会在文章的结尾贴出。

单点登录的地址:https://gitee.com/xhyonline/SSO.git

兰陵美酒郁金香

大道至简 Simplicity is the ultimate form of sophistication.

文章评论(0)

你必须 登录 才能发表评论