00:01
各位同学大家好,我是上硅谷加瓦伊学科讲师孟庆祥。接下来呢,我给大家分享一道面试题,面试题的题目是单点登录实现的过程,那首先第一个带大家来了解一下什么是单点登录。什么是单点登录?单点登录呢?大家可以用一句话来通俗易懂的来告诉大家这个单点登录的概念啊,就是一处登录多处使用啊。多处使用,那在这呢,老师以这个京东为例啊,京东为例不是重新开一个。3W点京东点com,然后呢在这。我搜索一个手机啊,在这搜索一个手机,然后在这呢。
01:01
登录的时候呢,选一下登录啊,我一会儿扫一下二维码或者是啊,大家看一眼啊,大家看一眼就可以了,我用老师的手机去扫一下。嗯。啊,老师这手机有点慢啊,大家稍等一下。OK,登录完之后呢,大家可以清楚的看到这有我的用户名啊,这有我的登录之后的用户名,然后我再点击。商品详情的时候,同样也能看到当前的用户名的存在,这就是一处登录,多处使用。而我们来看一下我在登录的时候,我在。检索页面去登录的,那么的域名是search,点京东点com,那么它呢是一个检索项目,而商品详情,商品详情它是item,点京东点com,所以。
02:13
一个检索一个商品详情,它是两个项目,这是我们分布式系统的典型的一个案例啊,所以在这儿大家要明白,单点登录。就是一处登录多处使用,但是必须得有一个前提啊,前提我们我把前提写在下边了吧,前提是单点登录啊,单点登录。多使用在分布式啊,分布式系统中才能使用。那么在这大家。啊,大家注意,如果是单独的一个Java web项目,能不能使用单点登录可以,答案是可以,但是。
03:02
没必要啊,没有必要使用单点登录,那么单点登录这个过程是如何来完成,是如何实现的呢?我们来看一下老师下面这个图。这是啊,这块画了一个小人,就是类似于我刚刚那个操作,我要准备干嘛,准备去登录啊,登录当前系统,那么在登录过程之中呢,首先它有一个什么呢?有一个。认证中心经过认证中心他认证什么呢?认证你当前的cookie中是否有token,那么什么叫做token呢?我们可以简单的理解为一个门票啊,一张门票,那么如果说认证中心,认证中心检查你token不存在,比如说你没有token,就cookie里没有,那么怎么办呢?会提示你干嘛提示到。
04:02
登录提示你当前用户要登录,那么登录。要输入用户名和密码,老师刚刚的操作是拿到微信啊,拿到这个京东的客户端扫的,所以就相当于我登录了,那么登录之后,登录之后干嘛呢?会产生一个token,在登录成功的同时会产生一个token,带着token跳转到原来的应用,也就是说老师刚刚在。点击在点击登录的时候是在哪点击的,在当前的检索页面点击的,那我老师登录之后,它又重新回归到当前的应用,回归到当前的项目,这就是一个登录完成之后,那么登录完成之后,那么此时已经携带头盔了,当我再点商品详情的时候,它。会检查我cookn中有token,则会将token中的信息解锁出来,将得到我的谁,用户名显示到当前的系统上,就是这意思。来,我们接着往后看,带着token跳转到相应的web应用程,Web应用程序,那么此时,此时你的token。
05:22
Token。一直都会保存在哪呢?保存在你的cookie之中,只要假如说我在这再点一个加入购物车,那么此时购物车的这个模块,同样他也能拿到用户名,这就是单点登录的一个基本概念。啊,以及一个实现原理,那么在这呢,老师给大家举一个例子,让大家好理解啊。那比如说大家啊,工作啊,平时工作都很累,都很忙,对吧?啊,假如说你领导带着啊,或者说我吧,我带着我们同学要去参观一下动物园,那么参观动物园怎么去参观动物,参观动物园的流程我想大家都知道,就是啊参观动物园的流程,那么流程是什么呢?首先第一个我要带着所有人去参观动物园,我能不能直接带着大家去。
06:23
如果我直接带着大家啊,第一步我直接带着大啊,带着大家。进。动物园。则会发生什么情况呢?则会被谁呢?检票员拦住。啊,检票拦住他会看你看谁呢?看我们是否有门票,那么这个动作就相当于谁呢?检票员就相当于我的认证中心啊,这给大家记下,检票员就相当于我们的认证。
07:12
中心这模块他会看你是检票员,会看你是不是有门票,如果我们没有啊,没有,那么没有第二步会干嘛呢?他会告诉你,你去售票处去买票没有。则去售票处买票,那么也就是说相当于第一步,当我去认证,认证没有怎么办,告诉我登录,那么登录这个过程就相当于买票。啊。登录就相当于什么买票。卖掉,那现在我就是我去。
08:02
买票啊,我去买票,那我买完票之后,我把大家当然了,我不能买我自己的,对不对,我要把大家所有的票都买掉,那么买完之后,那么这个时候我是带着票干嘛呢去。带着票,同时带着大家啊,带着大家一起。准备。进入动物园进行观景,那么这个时候我再带大家去进园的时候,那么它是不是这个减。票源。应该再去check一下,那么再去check一下,Check就是检查,检查当前我现在是有票,那么有票我现在我是不是就可以进入了,那么接下来看我们应用程序,当我买完票之后,是不是我登录成功,登录成功我是不是带着这个票,带着这个票进去观想,所以说此时的这个。
09:04
票啊,此时的这个票就相当于谁呢票啊。这个票就相当于我们项目中的token。啊,项目中的图改那第三步啊,第三步这块我要带着票。我们手中有票啊,我们手中有票就可以任意。观景啊,任意观赏吧啊,观赏谁呢?观赏动物园的没错。啊。每每处景点啊,每处景点,那么如果用现实生活中的案例来描述,单点登录,这就是最好的体现。
10:01
啊,这就是最好底线,那么单点登录在这儿大家要注意的是啊,要注的注意的是一定是有个大的前提,单点登录多部分使用在分布式系统中啊多。大部分都是使用在分布式系统中,那么在这呢,大家可以回头去试一下啊,在这老师不大不给大家演示了,那么京东啊京东。它的单点登录啊,就是单点。咱点登录。是将token放入到哪呢?Cookie中的?如果有感兴趣的同学,大家回家可以做这个做个案例啊,做个案例,案例什么呢?案例是将浏览器的cookie禁用啊,将浏览器的cookie禁用则。
11:05
在登录京东啊,登录京东则失败,就是无论如何登进去,无论。无论如何都登陆。不了啊,都登录不了。这个是一个案例啊,那么这单点登录呢,最重要的思想都在这儿,希望大家能够理解明白,OK,那么我们这个单点登录这个过程呢,我们就讲到这儿。
我来说两句