00:00
前面我们整合spring session解决了session共享问题,最终呢,我们实现了一个效果,那就是我们在我们这个首页,那我们来点击登录,我们只要登录成功以后,比如我们用社交登录,只要登录成功以后呢,我们可以在任何微服务,因为这个登录呢是在also服务,那们接下来可以去商品服务,检索服务,那么都可以取到我们当前登录的这个信息,比如我们来看一下我们的检索服务,那么这一块呢也能取到,那这个呢,我们把握住了两点,那第一点就是呢,我们所有登录后的状态信息,我们是存到session里边的,而我们任何一个服务,我们session呢,最终都整合了spring session将session统一存储到了red里边,然后呢,第二点,我们让session第一次存数据的时候,我们会给浏览器来进行发卡,这个卡呢,就标识了我们存session的这个ID是什么,然后发这个卡呢,我们也给它放大了作用域,我们让某一个服务发的卡,比如我们这个会员。
01:00
全服务登录成功,给session里边存数据,发了一个这个卡,这个卡呢可以让全服务通用,全服务通用那就是跨我们整个父子域,无论是我们富裕系统,按照我们这个域名鼓励M旗下的所有域名,我们都可以去来使用我们这个检测ID,所以呢,这是我们使用spring session达到的效果。但是呢,在更大的一些系统里边,我们又会存在一些问题,比如我们可以来看一下这个场景多系统,我们举一个例子,假设呢,我们上硅谷的网站域名呢是an特硅谷点com,然后呢,我们上硅谷网站旗下呢,下设了非常多的产品,比如有我们的在线教育鼓励学院点com,还有我们的电商系统鼓励mail.com,还有我们的众筹系统鼓励方点com,那么现在这三个系统,如果我们全部上线,包括我们整个上硅谷的官方网站,我们上线以后用户要来使用,假设呢,他在鼓励商城里边已经登录。
02:01
成功了,那他再来访问在线校教育,要不要他再来登录一遍,而且呢,要不要他再来注册一个用户,包括他访问我们众筹系统了,他要不要再注册一个用户,包括他访问我们整个上硅谷了,他要不要再注册一个用户,如果我们访问我们旗下的任何产品,我们都要注册一个用户的话,这样就让人感觉使用起来非常麻烦,这是第一点,第二点,那么每次登录都是使用上硅谷旗下的,每次呢都要重新登录。而且如果都是同用同一个账号,重新登录也很麻烦,所以在多系统里边,我们最终希望能达到一个效果,什么效果呢?比如我们这个电商系统,我们呢想要登录,我们专门呢,抽取了一个认证中心,就是来处理我们这个登录的,我们只要登录成功了,我们任何其他系统都能使用,那我一想到这一点,大家又想到我们是不是能用spring session解决这个问题呢?其实是不可以的,比如我们来举一个例子,如果我们在电商系统里边登录我们这个发卡呢,如果都用session我们来发卡的话,我们发的这个卡,我们放大作用域,最多只能放大到它的一级域名,也就是古ma.com,不能放大到什么点。com,全世界通用的,所以我们现在只能放大到这个作用域,那相当于我们浏览器要访问其他网站,只要是特硅谷点com,古励房顶、古励学院这些,只要不是古励ma com的,就带不上我们那张卡。
03:33
所以呢,我们就不能通过我们最简单的spring的方式来解决我们多系统的,我们将这个问题称为单点登录问题,所以呢,这个单点登录,那就是我们想实现一个效果,就是一处登录,处处可用,我们在电商系统里边,我们要用的时候,假设我们现在要登录了,我们只要登录成功,去其他任何系统,无论是众筹,在线教育,还是我们上硅谷的官方网站,我们都无需再次登录,那我们怎么实现这个效果,包括我们在现实中,我们也会见到非常多这个效果,比如我们以我们的这个微博为例,那么现在呢,大家都知道,那么这个微博呢,是属于我们这个新浪旗下,我现在呢,微博这是登录了,如果我们来访问新浪的这个官方网站,包括新浪下边呢,有非常多的这些门户频道,比如他的体育有sports这个新浪点com,还有他的这个视频来点开,有video新浪点,那现在呢,我们能不能。
04:33
一处登录,处处登录,好我们现在呢,是登录了,我们现在把它退出,我们先来看一下,好,我们来整个退出系统来刷新一下,我们这个视频退出了们以前呢,这个新浪体育里边,我们这儿呢,也是登录状态,诶有这个登录状态信息,我再来刷新一下,我们先看到了,是一处退出,处处退出,诶我们这一块呢,虽然有,但是你一刷新这就没了。好我们这个微博呢,我们发现它已经提示我们这个登录账号有发生变化了,好,下面来测试一处登录,处处登录,比如我们来用新浪旗下的所有产品,那现在正在用微博,微博呢需要登录,好,那现在来给他登录一下,来点击登录,来输入一个验证码E。
05:15
CQ,我们来登录,那么这一块呢,我们的微博就登录成功了,但如果我们再来使用我们新浪旗下的其他产品,那还需不需要再来登录呢?比如我们使用新浪的这个体育频道,诶,我们这个视频我来刷新一下,哎,我们发现呢,这一块已经是登录成功状态,包括我们要看新浪的这个体育频道,我来刷新一下,那这一块呢,也变成了登录状态,那以前包括我们整个新浪的主页,我们原来是没登录的,我来刷新一下,发现呢这一块也是登录状态,所以呢,我们这个就实现了一处登录,处处登录,而且呢,它是无论哪个域名都可以,无论是新浪点com,还是我们这个微博点com,那么这个域名呢,都是可以的。所以我们现在如果将登录做的更大一点,那我们就需要考虑我们这个问题叫单点登录,那么也希望我们的这个系统,假设我们这个系统,我们现在的登录呢,我们都是访问author这个无力ma com,我们访问login这个页面,那假设呢,我们上线了非常多的产品,我们现在有鼓励学院,你们呢鼓励众筹,我们这三个呢,都想实现一处登录,处处登录,也就是我们说的单点登录,那我们怎么来做?那想要做这个,我们先来给大家来看一个开源的这个单点登录的整个事例DEMO,有了这个DEMO呢,我们就应该有更深的印象,好当然呢,还是去马云get e好点com,那这个马云里边呢,有一个单点登录的这个DEMO,那搜索XXL徐雪莉好这个作者呢,写了一个徐雪礼的单点登录框架。
06:51
这个框架呢也非常简单,大家想看源码也可以来我们在这儿来,直接先来点击下载,我们把它呢下载过来,来下载我们的压缩包。
我来说两句