好,接下来我们看这个问题,什么是 o 二十二点零协议?有哪几种认证方式?什么是 j awt 令牌和普通令牌有什么区别?其实这个问题本身就都是围绕 o 二点零协议的,对吧?后面几个问题其实也都是围绕这个协议扩展出来的问题,就这个问题呢, 很多同学打这个问题容易翻车,为什么呢?因为 os 二点零协议了,本身他不是很难,但是他流程比较长,然后很多同学学这个二点零协议的时候,学的时候感觉没什么问题,但是呢,学完就容易忘,过一会就忘了。 其实这就是因为我们在学这个欧欧三点零协议的时候,没有带入过多的思考。欧欧三点零协议他解决的问题是什么?就是在互联网环境下怎么做一个认证和授权,其实你我们可以看到我们之前做的一个一个认证和授权的那种权限框架, 面临很多很多的问题,对不对?像 csrf 攻击啊,其他一些攻击手段如果放到放到这个互联网环境下,面临的情况会更加的复杂, 这个时候怎么去设计一个好的一个权限认证框架?其实这就是 office 的协议做的事情。其实问题我们都理解,关于互联网环境下的这种场景呢,我们也可以加入很多自己的思考,对不对?当你把自己的思考和 owhit 零协议结合起来之后,你对这个协议的印象就会比较深了。好, 那我们呢还是从头梳理一下这个协议。什么是欧二十二,欧二十二点零协议呢? 是一个开放的标准,允许用户授权第三方应用应用程序访问 他们存储在另外一个另外的服务,另外的服务提供者上的信息,而不需要将用户名和密码 提供给呃第三方应用或分享他们嗯, 数据的所有内容。哎,这个一说好像挺长的,其实 他的一个核心叫什么开放,就在互联网环境下怎么做这么一个事情那?呃整个欧二三点零协议他的流程呢?非常非常多。那哦,二十二点零协议的认证流程,我们 我们可以简单做一个理解,就是呃,允许我们将之前 的呃之前的授权和认证过程交给一个独立的第三方进行担保, 其实 ow 三点整个协议他的核心也就是在这个担保这个字上面。比如说打个比方,我们访问百度,对吧?我们访问百度登录的时候 是不可以用微信啊?用这个微信登录啊,对不对?用微信,用 qq 登录都可以,那这是怎么做到的?其实这个流程我们应该都清楚,对吧?那你弹出一个二维码,用微信扫码,扫码之后完成登录会有一个你选择同意还是不同意的页面,选择同意了之后, 然后就会跳回这个页面,然后最终百度就完成了登录。这个流程相信大家都使用过, 所以他这个过程当中的核心是什么呢?核心是我们用户在登录百度的过程当中,我们的身份的认证以及授权过程不再由我们自己提供,不由我们去输入这个百度账号密码提供,而是由微信来做担保, 相对于由微信在中间做一个担保,保证我们对百度这些啊登录后的隐私资源的访问是合法的, 而其实呢就是通过这个微信开放平台,那微信开放平台就相当于是做一个身份担保啊,这样一个一个东西, 所以整个 os 二点零协议的流程就是怎么样让第三方呢 参与这个担保的过程,握杀点协议的流程呢比较长,我们呢也就不带大家从头去梳理了,我这里有啊,我这里有我们之前 vip 公开课当中哎指出来的画过的一些图, 可以给大家看一下。首先这个啊,授权码模式,嗯, ow 商店里有哪几种模式啊?我们都把它列一下啊。 二十二点零 二点零协议有四种认证方式,一种是授权码模式, 授权码模式,一种是简化模式, 一种是呃,密码模式、客户端模式, 这些模式呢都有一个演变的过程,那我们这里呢就不再带大家一一去进行演变了,只是把这个问题跟大家去梳理一下啊,这四种认证方式是干嘛呢? 我们看这里有一个,这是我们之前画的一个授权码模式的流程图,我们可以参照我们之前用百度登录的那个场景,对吧?回忆一下百度登录,呃,我们在百度上用那个微信账号登录的那个场景,实际上就比较能够明白了。首先他的参与者有哪些?参与者有哎,志愿者就是用户, 用户呢是表示有,他有最核心的这个资源,比如说在这个过程当中最核心的资源就是微信账号, 对不对?那用户呢?就是拥有这个微信账号的这个资源拥有者,好。然后呢,第三方应用就是百度, 用户要访问百度,对吧?通过一个客户端就表示是浏览器或者是我们的,呃,手机 app 也可以,对吧?这是个客户端。然后呢有一个授权服务器,就是我们的微信开放平台,就是他这个微信开放平台是负责来进行担保的。 那整个流程是什么样呢?当我们用户需要访问这个第三方的百度的时候, 当我们用户需要访问百度的时候,百度会引导客户去申请一个令牌。其实我们看这个过程当中, 当我点了这个微信的时候,他这里事先弹出了一个图,就是引导我们去进行百度登录,对不对?那这个过程首先会要申请一个令牌, 他就会去授权,呃,授权服务器上去申请一个令牌, 然后我们用户去访问这个链接,实际上访问的是微信开放平台上面的一个链接,这个链接带了百度的一些客户信息,我们用户访问这个链接之后,就可以用微信账号在这个微信开放平台上完成登录,登录完了之后会有一个确认的一个页面, 我们选择同意还是不同意啊?然后同意完了之后用户选择同意,这个时候这个请求是发往微信开放平台的,微信开放平台相当于 微信上面就会接收到用户的同意授权信息,然后呢他在通知你这个百度,通知百度给百度,其实给他一个扣的一个 授权码,这就是所谓授权码,有授权码了之后,百度他也不是拿这个授权码直接来用,而是什么呢?他拿这个授权码,他拿这个授权码,再到这个微信开放平台上去申请一个令牌, 访问令牌,一个偷啃,通过这个偷啃再完成自己的一个登录的逻辑,这是整个授权码模式的一个流程。 我们怎么梳理这个流程呢?其实就是关键是什么?把这个微信开放平台看成是一个担保方,他如何来提供担保? 就三方不互信的情况下,在互联网下安全性肯定是没有得到保障的,对吧?三方不互信的情况下,如何去让这个微信担保我这个用户的身份?这其中就是主要是什么呢?主要就是这个偷啃,呃,另排 和这个扣的这两个是关键,也是在这个过程当中,首先用户去这个微信上申请一个授权码, 呃,然后百度通过这个授权码去申请一个真正的令牌,有这个令牌才可以访问百度的这个登录的资源,这是这个流程, 我把这个图呢给大家画一下授权码模式,这个授权码模式是最为安全的一种方式,在互联网上就可以通过这样的一个流程来组织我们整个啊认证授权的这个过程。 然后呢这种方式,这种方式有好处,但是呢过于复杂,所以就有一种哎简化的模式,简化 模式是什么样呢?简化模式就表示我们看还是看这个图啊? 简化模式就这样,简化模式,整个前面的这些步骤都差不多,不过在这个过程当中呢,少了这个扣的, 没有了这个扣的。有的是说授权服务器获得用户授权统一之后,直接下发的就是这个令牌,就是脱口就没有换扣的这么一个过程,那为什么有这样的一个流程呢? 因为你这个如果是授权码模式,你的这个百度的这个应用需要什么?你需要你自己有福气,有后端服务器才可能去发起这样的请求。 但是对很多应用来说,他是没有服务器的,他本身没有服务器的话怎么办?那就没办法去再去发起后端的请求了,所以只能够用这种简 简化的模式。其实我们看在淘宝开放平台上,就是阿里的那个淘宝开放平台,就是可以采用这种简化模式,简化模式他就可以直接拿到令牌,这样的话他后端可以不需要服务器一个页面就可以了,对不对?你直接在前一段就可以响应他的这个令牌了, 所以这个是一个简化模式 啊,这个是简化模式。最后我们看这个密码模式, 嗯,密码模式相对来说就更简单了,就是就是一个账号的一个委托管理的类型呢?就是什么资源拥有者把我的用户名和密码直接给第三方啊?这种场景可能我们在互联网上用的比较少,因为这代表 的是什么?代表的时是他们就是资源拥有者对这个第三方是绝对信任的,我相信你这个第三方不会拿我的账号去干别的事情,对吧?所以把我的用户名密码都给第三方,第三方去代为申请,这个 xs took 就是我们的令牌,所以这是一个密码的模式。 好,然后还有一个客户端的模式,客户端模式更为简单,那第三方我可以直接申请令牌就行了,就是给我一个,就是第三方应用给授权服务器一个标志,就是标志我身份的一个信息, ok, 然后就返回令牌,那这就是客户端模式, 实际上这些模式啊,看啊,就也就授权码模式是最为复杂的,对吧?啊? 我们回过头来在梳理这个模式的时候,其实会发现什么呢?中间有一个线,有一个最主要的线,就是三方的一个互信的一个程度,互相信任的一个程度。授权网模式代表什么?三个人 都互相不信任,互相防着对方,我防着你,你防着我,所以呢,中间要不断的有确认啊,有申请啊,这样的过程,三方每一方都要进行,哎,互相的通信,这是三方都不互都不互信的情况,其实也就适合于互联网这种情况,对吧?因为 你用户可能被黑客冒充啊,对不对?所有的请求都可能被别人的冒充啊,三方不互请,所以这要有这么复杂的情况。然后呢,到了简化模式代表什么呢?其实代表了这个授权福气,对第三方应用就比较信任,信 度比较高,就是表示我就,我直接就给你拎牌了,你不会拿我的拎牌干别的坏事,对不对?所以代表他们之间比较互信。然后呢,到了密码模式,在上一个模式的基础上,又增加了资源拥有者,对第三方应用其实比较信任的,他们之间也比较互信了, 他们这些相互信任,那这边用着就可以把自己的用户名密码放心的放给给这个第三方。而客户端模式代表了什么?代表了整个,整个这个三方其实认为都是 相互信任的,那这更属于什么场景?就是我们内部的应用,这种场景对不对?内部应用的话大家都是信任的,就不需要做过多的这种安全的。呃,验证了 直接给令牌就行了,请求就给给令牌就行了,所以这是这种方式。我们在在梳理 o 二十二点零协议的流程的过程中,其实有一个主线, 就是,呃,三方参与者 之间的互信程度,信任程度, 其实有这个信任程度,再结合我们,哎,回顾一下这个百度的这个例子对不对?首先就能够对 o 二三的协议把它梳理清楚。 好,那这样呢?我们把这个拎牌,把这个中间稍微停一下,视频稍微停一下,我们接着来讲这个啊, jw 这些拎牌的一个事情啊。
粉丝2.7万获赞3.2万

假设你已经登录了微信,这时候你想注册一个小红书账号玩一下,但注册就需要填写包括用户名、密码等一大堆个人资料,既不方便也不安全。因为你还不信任小红书, 所以你选择了小红书上面那个使用微信登录的按钮,接着就出发了,成为 of off two 的第三方授权流程。他怎么做呢?首先,该按钮可以把你带到一个微信的页面,问你是否愿意以微信登录小红书。 如果你点同意,这时候微信页面就跳回到小红书页面,并告知小红书该用户已经同意使用微信号登录了。你带上相关证明来申请该用户的资料吧。于是小红书就把自己的身 份证明发给微信,要求获得用户的资料许可。微信看了之后就会发一个令牌 token 回给小红书。注意啊,微信是怎么信任小红书并能认出他的身份证明呢? 那是因为小红书提前就已经在微信上注册了,已经提前勾搭好了。好,那这个令牌小红书就可以给微信的数据服务器发请求,获得用户的昵称等资料, 然后在页面上显示出来,并让用户登录。有了这个 o b o, 你再去看看细节,相信你很快就能懂了。

os 二点零是一种用于授权的标准协议,允许客户端应用程序以受控的方式访问受保护的资源。基于 us 二点零的认证是一种安全性措施, 用于保护阿素系统中的数据和应用程序免受恶意攻击和非法访问。基于 us 二点零的认证使用以下步骤,一、第一步, 客户端应用程序向认证服务器发送请求,要求访问受保护的资源。二、第二步,认证服务器要求客户端应用程序提供有效的授权凭据,以证明其身份及其被授权访问受保护的资源。 三、第三步,如果授权凭据有效,则认证服务器向客户端应用程序颁发访问令牌 excesshoke。 四、第 四步,客户端应用程序使用访问令牌来请求受保护的资源。五、第五步,阿斯顿服务器验证访问令牌,并将请求重新路由到正确的资源,以确保只有授权的用户才能访问他们。基于那十二点零的认证提供一种简单、 安全和可扩展的方式,用于验证 iphone 系统中的用户和应用程序,以确保只有受授权的用户才能访问受保护的资源。

哈喽,大家好,首先来看一个例子啊,假设这个是我们的一个客户端的一个网站啊,这个网站的地址是七零零二,然后它集成了一个 os 登录的一个功能啊,就类似于我们 网站上的微信微博登录啊,然后我们点击这个登录之后啊,他就会跳转到我们的一个授权登录页啊,这个授权登录页是一个七零零幺的一个地址,跳转过来之后啊,我们输入我们的用户门密码,进行一个用户的登录, 然后登录完成之后啊,他就会又会跳回去我们之前的一个客户端的一个网站啊,然后并且啊拿到我们当前啊这个用户的一些用户信息啊,这个就实现了一个 os 登录的一个功能啊。 ok, 我们回过头来看一下 os 里面他涉及到的几个角色啊, 首先第一个就是我们的接入 os 登录的这个网站,我们把它叫做客户端啊,也就是说我们的一个第三方应用啊,这是他 os 的第一个角色。然后第二个角色就是我们点击登录之后啊,跳转到的这个,他其实就是我们的叫授权服务器 啊,授权服务器主要就是用来专门处理一些用户授权登录操作的,然后当我们点击登录之后啊,然后这个界面就会拿到一个用户信息啊, 那我们当前网站拿到的用户信息他是从哪取的呢?他是从资源服务器取的啊,也就是说 os 的第三个角色叫做资源服务器 啊,那授权服务器和资源服务器呢?有可能是同一个服务器啊,比方说我们网站接入微信登录之后啊,我们会从微信开放平台里面去 处理这个用户登录的请求啊,也有可能会从微信开放平台里面去获取这个用户信息啊,所以他这个微信开放平台啊,就是我们的一个授权服务器,也是我们的一个资源服务器, 他同时担任两种角色,然后除了最开始我们网站这个客户端之外啊,还有就是我们的拥护啊,这四种角色构成了 os 里面的四种认证角色。 ok, 那 os 登录里面有几种授权模式呢?总共是有四种啊,分别是这个授权版模式、讲话模式, 然后密码模式和我们的这个叫客户端模式。然后我们最开始讲那个 demo, 他其实就是用的最多的,也是最实用最安全的一种模式,授权版模式。然后这集我们还会给大家讲一下什么叫做密码模式。首先我们来看一下这个授权版模式的一个认证总体流程。我们拿 啊微信这个登录我的一个例子来看一下,首先呢涉及到几个角色,我们的微信用户,然后我们的第三方应用,还有我们的微信开放平台啊,我们之前说过啊, 微信开放平台他既担任这个志愿服务器,同时又担任我们的叫授权服务器。然后整体的流程哈,就是我们微信用户啊,请求第三方应用的时候,第三方应用的这个网站上啊,一般会内嵌一个微信登录的入口啊,然后我们点击微信登录的入口之后啊,他会跳转到微信开放平台啊, 比如说我们掘金的网站,我们去点登录的时候,他会内嵌一个叫微信登录入口, ok, 我们单击之后他会跳转到这个微信这个啊,开放平台的一个授权登录页啊,也就是说我们会请求啊,微信这个 os 登录, ok, 我们用户点击确认之后啊,或者我们用户扫码之后啊,微信 开放平台给我们网站一个 cod, 然后拿到这个 cod 之后啊,他就会重定向到我们第三方网站的上的一个地址上, ok, 然后我们这个网站啊,拿到这个 cod 之后啊, 再加上我们的 a p p id 和 a p p 的密,要啊,这个 a p p id 和 a p p 密要是之前微信开放平台颁发给第三方应用的啊,啊?他怎么颁发了?就是说你要接入他的话,你得提前去申请吧, 申请的时候他就会给你发一个 a p p id 和 secret 啊,然后这个网站拿扣的 a p p id, secret 啊,拿到之后啊,它会掉这个 啊,开放平台的一个接口啊,去换取这个 anthes token 啊,那 anthethtoken 拿到之后啊,那这个第三方应用啊,就可以拿 anthes token 啊,呃,去请求获取用户信息的一些接口了,包括我们的用户的名称, 用户的头像等一些信息啊,这个就是微信登录的一个整体的一个流程啊,那回过头来看一下我们刚才那个 demo 啊,首先的话是有一个这样的一个网站啊,这个网站是一个七零零二,七零零二里面只有一个 os 登录的一个录客啊, 然后我这里是有一个这个叫客户端的一个应用啊,就是我们这个网站啊,这个是 os 登录啊,然后他点击登录之后啊,他会跳到啊,这个授权服务器的一个授权地址啊,是这个 啊,七零零幺 alsoy y s 的一个接口啊,是我们授权服务器的一个接口啊,然后他会携带几个参数啊?叫 clinic id 啊,就是我们当前这个客户端的一个唯一的一个 id 啊,然后再就是你的一个 state 值啊,这个 state 值你可以是一个拥有 id 或者怎么样啊?然后再一个 要重要参数就是 red r 的余娃,这个参数是干啥用的?就是啊,你在这个跳转到这个授权登录页之后,那你登录成功之后啊,那你要回跳到一个地址上啊, 也就回跳到我们这个客户端的一个网站上啊,所以这个地址是我们当前客户端的一个回跳地址啊,啊,这对应到我们这里的一个地址啊,然后我们看一下这个啊,首先 他这有几个路由啊,首先是我们首页的这个路由啊,就是这个我们当前网站这个首页路由。然后再就是我们回跳地址啊, 也就说我们在这里指定的 ur 的这个地址是一个杠二十的路由啊,这是个杠二十的路由。我们来继续看一下,点击之后啊,他会跳转到这个七零幺的这个地址啊,七零幺这个地址是在哪呢?是我们的授权服务器啊,我这有一个授权服务器啊,这个 授权服务器有一个 alsoys 接口啊,啊,这个接口,他会跳到这个路由上,这个路由的话,又去做了一些什么操作呢?他会 调到这个 user office 啊,他会跳这个登录页,也就是说会渲染出这样一个登录页面出来啊,我们看一下这个 log 啊,就是这样一个界面啊, os 授权登录页, os 授权登录页 啊,然后我们会输入我们的优酷门密码,包括我们的客户端 id 这些参数啊,那这些参数是怎么来的?就是我们刚才刚才渲染的时候,我们从这个客户端的这个 跳转过来的这个 url 上啊,取到的啊,取到之后我们把这些参数啊会渲染到页面啊,渲染到页面渲染到这里,这些参数其实就是我们刚才从这里传过去的啊,直接传过去客户到 id states redoi ur 啊啊,这个是跳转到这个 os 服务器的一个授权登录页啊,那授权登录页点击登录之后啊,他又会调到这个 users 澳洲 y 这个接口啊,这个接口是干啥的?这个接口是授权服务器用来颁发扣的的一个接口啊, 也就是说我们最开始讲的这里啊,这个用户点击确认之后啊,那微信开放平台会给一个扣的,给扣的之后,拿到扣的,他会 把这个扣的带上啊,去跳转到第三方应用的一个网站上啊,那我们这个接口就是颁发扣的的,颁发扣的之后啊,他又会重定向到啊,重定向到我们这个客户端最开始指定的这个地址上,比如说我们最开最后跳转的地址,其实就是这样子的啊,类 至于这样我们的一个扣的等于什么什么啊?然后会是我们什么是 get 等于什么什么啊?是这样的一个地址, ok, 然后我们这里跳转的话,就是用这个有一个路由去接的啊,就我们当前服务器底下有一个这样的一个雍正 autores 的一个路由啊, 啊,这个路由主要做几件事啊,就是获取授权码扣的,并且从定向, 从定向到啊 red rick ur 二,他就做这么一个操作啊,然后我们尝试着登录啊,我们尝试着登录一下啊,他就会去跳跳转到这个啊,这个地址啊,这个地址,这个地址就是 杠二十的一个地址。杠二十地址是我们客户单网站啊,我们又回到客户单网站上啊,客户单网站的一个杠二十的一个地址。嗯, 刚奥斯的地址的话,我们可以在 home 底下有一个奥斯。那奥斯跳转过来之后啊,那刚才我们说这个授权服务器已经颁发了一个扣的啊, 并且他会携带一个 state, 那这个扣的和 state 我们就会打印一下,我们这里会打印可以看到这个 state 它是原封不动的拿过来的。比如说我们, 我们最开始啊跳转过去的时候, state 传的是啊这个数啊,然后我们跳过来的时候啊,他的 state 还是这个数啊,然后这个扣的的话,是服务器临时生成的一个唯一的一个扣的啊, 那拿到这样一串东西,我们接下来要做什么事呢?我们就要拿这个 cod 去请求这个 ansis talking, 回到这个,回到这个流程上啊,我们拿到 cod 之后啊,加上我们的 a p p id 这些参数,我们去要取这个 excess talking, ok, 我们就会调这个 excess talking 的一个接口啊,就是我们要在客户端里面去调授权服务器取 talking 的一个接口啊,就是 users 杠 talking 啊, 然后传一个授权模式啊,然后扣的,扣的就是刚才颁发的扣的,然后再加上我们当前客户端的唯一 id, 我们客户端的唯一的一个密要, 然后再就是一个从定向地址啊,拿到这些参数之后,我们调这个 user token, 取这个 answes token, user token 是授权服务器上的一个接口地址啊,他这是第二个接口啊,这个接口, 那这个接口就是其实就是根据数学码扣的啊,去获取一个 xs talking, 还有我们的一个 reverse talking 啊, 啊,这个 refers token 和安 stop token 的作用啊,我后面会去再讲一下,大家只需要记住啊,这个接口他是获取 token 的啊, 那获取到 token 之后啊,我们拿到这个 token 里面的这个 answer token 啊,就可以去调用用户信息的一些接口了,就是还是这个授权服务器上的一个用户信息的一个接口啊, 就对应到我们这个流程的啊,后面后面几步了啊,我们拿 enses token 去掉这个用户信息啊,就是这样操作的,这个取 token 啊和获取用户信息啊,基本上都是在这个后台服务器上啊一步完成的,然后我们 最后将拿到的用户信息要打印在这个啊页面上,其实就是我们现在看到的这个效果 果啊,他的用户信息已经能正常打印了,也就是说我们这个获取用户信息的接口也掉了,成功了,我们看一下这个接口是怎么实现的, 他是在授权服务器上这个,然后有一个这个接口啊,这个是通过安生 token 取用户信息啊,仅登录成功之后可以访问。嗯,他也是用了一个 iggs 的一个插件啊,然后会调到优热了这个接口上,这个接口的话是这样子的 啊,这个接口,这个接口获取用户信息,获取用户信息的时候,他妞会从这个 statement 里面啊,取到这个 token 啊,然后拿到 token 就能拿到这个 token 里面包含的这个用户 id 啊, 然后我们就可以啊,做一些权限判断之类的,或者返回用户信息啊啊,这个就是实现了 啊,这个啊,用户信息的一个根据 token 的一个认证授权的一个返回啊,包括这里啊,我们刚才去取这个,呃,拿到这个 token 之后,我们不是打印了一下吗?其实就是这一串啊啊, 然后这里面就会有可以看到有这个 inside token 和这个 reviss token, 那 insides token 就是请求这个用户信息的一个 token 啊,就是这样子用的。 然后呢? refis token 是做啥的? refire token 就是针对我们 excess token 啊,过期之后啊,我们可以拿这个 refice token 去置换一个新的 excess token。 那要实现这样效果呢,就得保证我们瑞弗 s token 啊,他的这个时效性啊,要比这个安赛 token 要大啊,一般我们 ss token 可能就是一个小时过期,那我们的这个瑞弗 s 套卡可能就是半年啊,才过期这样一个时间。然后我们看一下这个或许用户星星的接口啊,是直接掉,我们拿这个 pose 麦试一下啊,我们把这个安赛套卡的粘住了啊, 这个安史涛肯只有二十秒啊,我们刚才试的时候,现在应该已经过期了,我们拿安史涛肯去请求一下用户星星,他应该是会爆这个四零幺的。 哎,可以看到这个 answer token 已经过期了啊,那过期我们刚才说可以拿 refised token 去置换,对吧?那我们拿这个 refised token 调 refised token, 根据 refised token 去置换这个新的 answer token 的接口啊,我们还是调这个 user token 接口啊,我们点击请求一下。 哎,可以看到啊,我们这里已经有一个新的 iza token 了,然后我们拿到这个新的 iza token 之后啊,就可以 拿它再去掉这个获取用户信息了, ok, 然后这样用户信息又能正常拿到了啊,这样就实现了一个这个啊,拿 refs token 啊,去置换新的 asset token 的一个功能啊,然后我这个 asset token 只有十来秒啊,可能一会就过期了。 ok, 看他已经过期了啊,那这个其实就是一个完整的这个叫授权版模式啊,叫授权版模式。 然后我们刚才看到啊,其实除了授权版模式,他还有一个密码模式啊,那密码模式,密码模式他跟授权版模式有什么区别呢?我们来给大家讲一下。 那授权版模式的话,他有一个根据这个扣的啊,根据扣的会从天上回来啊, 从定向回来之后啊,再拿扣的再去请求这个 token。 那密码模式的话,是没有这个重定向这个操作的,直接第三方应用啊,可以根据这个呃用户名的密码,再加上 app id, app 密,要这些直接去掉啊,这个授权服务器的接口去请求 token。 怎么做呢?我们看啊,我们这里就是有一个密码模式啊,我们的 grown type 就要改成这个叫密码,然后我们要传客户端的 id 密,要用户名密码,这个相当于就把这个用户名密码直接告诉给第三方,这个叫授权服务器了啊, 告诉他之后,我们直接去调上这样一样接口啊,就可以直接拿到我们的一个叫 insize talk 呀,他说我们缺了用户名啊,我们 传一个参数啊, ok, 可以看到他已经拿到 s s token 啊,他没有重定向也没有扣的的概念啊,拿到这个 ss token 的时候,我们拿这个 token 啊,就可以直接去掉我们的用户信息的接口了, 大家可以看到这个用户信息也是能正常返回回来的啊。 ok, 这个就是一个密码模式啊,那我们再看一下,他还有一种模式叫简化模式啊,我们简单给大家介绍一下,简化模式的话, 相比于授权法模式啊,他没有哪些操作呢?就简化模式的话,这里用户确认之后啊,他从定向的时候,从定向回去的时候,他除了携带扣的啊,除了携带扣的,他就会直接携带一个 ss token 啊, 这就是简化模式啊,就是我们不用再拿扣的去请求按 size token 了,这个重定向的时候,这个按 size token 啊,就直接啊返回给我们第三方应用了,我们应用就直接可以在 url 或者重定向的这个地址里面直接去拿到它,这个就是简化模式, 简化模式的话,他首先是不安全啊,他不支持这个 refax token, 因为 token 的话是直接在这个浏览器的 ur 里面传输的确实是不安全的,还有一种模式啊,就是我们的这个叫, 这个叫客户端模式啊。客户端模式,那客户端模式是什么意思呢?就是说我们其实没有这个微信用户这个这个角色啊,我们客户端模式下午第三方应用啊,是直接去掉这个授权服务器的接口啊,相当于 直接是纯后台操作的,不需要用户去接入啊,啊,这样一种模式的话,就可以直接根据我们的客户端的 id, 然后客户端的密要啊,直接去 啊,去请求一个安赛涛肯啊,拿到安赛涛肯之后啊,那后面的操作是一样的啊,可以拿涛肯去换取用户信息啊,不需要这个微信用户啊,不需要拥护这个角色去参与啊,这个也比较简单啊,当然也有一些风险啊,那这种就比较适合一些什么场景,比如说 我们一些什么天气预报查询呀,或者一些汇率行情查询啊,这种单纯的一些不需要用户介入的一些业务场景呢,就比较适合这种啊。我给大家如果想要这个原码的话,可以私信我,可以发给大家,然后一起学习啊, 包括这个客户端和服务端的一个源代码啊,他是 note g s 写的啊,哎, note g s 的话,他有现成的一些差价啥的,比较方便啊,有问题的话也可以私信我,谢谢大家。

欧阿斯二点零协议是一个基于授权的开放标准,他允许用户授权第三方应用程序访问他们在其他服务提供商资源服务器上存储的信息,而无需提供用户名和密码。在欧阿斯二点零中,授权过程分为两个主要步骤, 授权码模式和访问令牌模式。在授权码模式中,第三方应用程序首先通过 http 请求发送授权请求到授权服务器并跳转到授权页面。 用户在授权页面上输入其用户名和密码进行身份验证,并授予第三方应用程序访问其存储在资源服务器上的信息的权限。授权服务器将返回一个授权码,该授权码与用户和第三方应用程序关联。在访问令牌模式中,第三方应用程序 将使用授权码请求访问令牌。授权服务器验证授权码并返回一个访问令牌给第三方应用程序。访问令牌是第三方应用程序访问用户在资源服务器上存储的信息的凭证。以下是 oix 二点零协议工作原理的详细说明。 资源所有者,用户在第三方应用程序上点击登录按钮,第三方应用程序会将用户重定向到授权服务器。 用户在授权服务器上输入其用户名和密码进行身份验证,并同意授权给第三方应用程序访问其在资源服务器上存储的信息。授权服务器验证用户的身份和授权请求, 并生成一个授权码。授权服务器将授权码以参数的形式添加到回调地址后面,并以 h t t p 三 三零二跳转的形式发送给第三方应用程序。第三方应用程序不需要主动触发一次请求就可以获取到授权码。第三方应用程序使用授权码向授权服务器请求访问令牌。授权服务器验证授权码并生成一个访问令牌, 授权服务器将访问令牌返回给第三方应用程序。第三方应用程序使用访问令牌向资源服务器请求访问受保护的资源。资源服务器验证访问令牌并确认其有效后, 向第三方应用程序开放受保护的资源。在 o r s。 二点零协议中,授权码和访问令牌都是在安全传输协议例如 h t t p s。 下进行传输和使用的,以确保它们在传输和使用过程中的安全性和完整性。 此外, os 二点零协议还提供了多种灵活的授权机制,如客户端身份验证、密码、令牌交换等,以满足不同场景下的授权需求。 os 二点零协议通过将授权过程分为两个主要步骤,授权码模式和访问令牌模式, 实现了用户信息的安全、开放和可控的授权。访问。第三方应用程序只需要获得用户授权,就可以访问用户在其他服务提供商上存储的信息,而无需直接接触到用户的敏感信息。 这种机制不仅提高了应用程序的安全性,也保护了用户的个人信息安全。 os 二点零协议的实际应用案例有很多,以下是一些常见的例子。 dropbox, 用户可以使用 os 二点零协议登录 drop。 dropbox 浙江允许第三方应用程序访问用户在 dropbox 上存储的文件和文件夹。 google, google 提供了 or at 二点零认证服务,使得第三方应用程序可以获取用户的 google 账户信息,如联系人列表、电子邮件、日历等。 facebook facebook 也提供了 o at 二点零认证服务,使得第三方应用程序可以获取用户的 facebook 账户信息,如好友列表、个人信息、照片等。 get up get up 同样提供了 or at 二点零认证服务,使得第三方应用程序可以访问用户在 get up 上存储的代码、仓库和贡献历史等。 bit pocket bit pocket 也支持 or at 二点零协议,这使得第三方应用程序可以访问用户在 bit pocket 上存储的代码、仓 库和贡献历史等。 os, 二点零协议的应用非常广泛,在单点登录、第三方登录等方面都发挥着重要的作用。这些应用场景中,用户只需授权给第三方应用程序,即可实现授权登录或访问其存储在其他服务提供商上的信息。


have you ever tried wrapping your mind around o off two, but ended up loss in the sea of joggins that's why we're here today we're breaking down these complex concepts into digestible explanations let's dive right in imagine the early days of the internet sharing info was straightforward just hand over your username and password to another service and they could access anything they wanted this practice is frang upon these days, but we might still encounter this practice in certain personal finance software to scrape information from crusty old banks luckily we have something much better these days enter o off two o off two is thy giving someone a special so key this key allows them to access specific information in another application we control who gets access to our data without having to share a password and yes, we can revoke that key at any time now let's play this out with an example consider a photo storage application snap store we've been using it to store our photos and now we want to print some of them using a third party printing service print magic instead manually uploading each photo to print magic we ask print magic to do the job with a simple click we grant pre magic permission to access our photos on snapstore using o of two premagic and then access our snapstore photos on our behalf with thou ever knowing our snapstore logging credential this is an example of the o off flow is an elegance stands between us premagic and snapstore or augustrated by o off 2 now let's impact this further in this context we are the resource owner because we own our photos on snapstore snapstore is the resource server that stores our photos pre magic is the client that wants to access the photos the authorization server could be a part of snapstore or an external identity provider and is responsible for handling the o off two process let's follow the o off to flow in this scenario it begins when we instruct prime magic to fetch photos from snapstore prime magic sends a client id and scope, which we present the access level requested to snapstore's authorization server as the resource owner we authenticate directly with snapstore and grand prime magic the consent to access our photos once, consent is granted the authorization server sends an authorization co back to primmagic premagic then presents this authorization co is client id and client secret to the authorization server now the client secret is a private key share only between premagic and the authorization server if the authorization server verifies the authorization co client id and client secret it issues an access token to premagic finally premagic uses this access token to request our photos from snapstore's resource server this all of two process and shows that our snapstore locking credentials are never exposed to premagic, while allowing premagic to access only the photos we authorized it to see it's also important to note that the access token can be set to expire after a certain time or can be revoked by us at any point providing an additional layer of security o off 2 also support refresh tokens which can be used to obtain a new access token when the owen expires without requiring our innovation that's o off 2 in a nutshell is an essential piece of the web security infrastructure and the backbone of many secure simless app interactions we use daily if you like our videos you might like our system design newsletter as well he covers topics and trans in large scale system design trusted by 40000 readers subscribe that blog by by go com。

ok, 我们继续上节课的内容。好,我们现在准备好电脑,电脑都有的,对不对?好,然后我们就开干,首先的话,我们知道咱们的一个 out two 的话,这个授权啊,它是分为两个服务的, 嗯,也就是我们厂家的一个认证服务,还有自然服务,自然服务就是代表的是我们的业务啊,我们的业务服务啊。好,这波业务服务,真的这个都是自然,对不对?你访问我这个业务业务币,我都是自然。好,首先的话我们创建这个认证服务啊,创建认证服务的话,我们有这几个, 有几个,这几个文件啊,我们都不需要创建了,一个是可烂底台。 sose, 如果大家之前看过我的斯文克拉的一个教学家的视频的话,应该应该有所了解。 好,首先是创建可拉的底下的赛博斯,嗯,介于这个时间的关系啊,我是提前把单码写好了啊,提前把单码写好了,大家可以看一下,我单码已经写好了,创建了两个人,一个服务,一个是认真的,一个自然的, 但是呢,我会带着大家一起把这个代码进行讲讲一遍呢,讲完之后大家的一个思路就清晰了啊,知道为什么这么写。好,首先我们看一下 克兰的题材 s s, 对不对?克兰底材 s, 这里面我们主要创建了一个这个克兰的题材 s, 这个时间啊,这个是做什么呢?我们看一下解释啊, 根据克克兰的 id 获取客户端信息,这个就是斯文斯克里在进行认证的时候啊,他需要根据你传过来克兰的 id 来判断一下你符不符合这个你携过来的,携带过来的这个认证数据咱们看一下啊, 什么认证数据呢?我们看一下,我们在进行认证的时候会在这里面会输吗?对吧?这个是不要认证,对不对?获取获取,偷看,或许偷看对不对?这里面我们有个认证对不对?他会拿着你这个可爱的来历去搅验一下你这个, 嗯,任克兰的信息,对不对?所以呢,他会调用你需要使用一个罗德克兰的 id 的这个方法啊, 去根据各方案的去找。大家注意啊,这个方法会被调用三次啊,总结了一下,三次啊,所以一般要加上缓存啊,防止他重复去数据过差的话一般要加上缓存啊。好, 我们,嗯,这个时间了啊,这个大概是这个意思啊,嗯,就是获取客户单的信息。好,然后我们再制定一个 u 字底下 sus 啊, us 底下 sus 前面这个是 clan 的底下 sus 是用来获取 clean 的信息的。我们,然后我们同样的我们要穿一个 us 底下 sus 啊,这个是封装的 us 底下 s, 这个用来干嘛的呢?这就是咱们进认证通过之后啊,然后他会把这个信息啊,封装在那那个斯文斯个体那个那个信息里面去啊,就是朋友赛跑那个那个里面去啊。好啊,封装在里面, 这也是实现这个优字底才二三二四, ok, 然后呢,这个是封装的一个基础基础实体啊,用户实体,然后我们需要创建一个这个一样的,也是去创建一个第三所使用来实现,根据是用户名啊,也就是我们账号 id 去找这个账户的信息,因为也他也是会被随口一起进行调用的, 所以我们看下这个题材 sus, 可以看到这两个有啥不一样呢?这个是实现的是 u 的底材, sus 上面实现的可烂底台 sus 他们两个用户类型不一样啊,类型是不一样的,所以我们看一下这个是干嘛的?这个也是通过直接 nomenonne, 就是你登录进来的一个账号, 然后根据查查查,查出去库里面查,对不对啊?查完之后的话,我们就会去组装他的一个角色啊,组装他的一个角色,大家要注意啊,这里面如果你想后面想用他的一个授权啊,授权注解的话,就是那个注解 全线好像那个朱姐的话,这个 ro 扣的一定要记住要用 ro 杠给他连接起来,然后呢给他便利之后给他封装在这个 cd x 里面去啊, 放到在这里面去,后面的话就是那个 suke 自己会去调音啊,进行认真的时候会调音啊,这个大概这么讲了,如果大家去听过我之前的课程的话,这一段,嗯,应该是很熟悉的了,很熟悉的了, 如果没有看的话,大家去爬楼往上找一找斯文克拉的脚脚丫视频,对了,好,然后我们来看一下我们今天的一个重者之重之一,对不对?重者之重之一,嗯,新创建的名词啊,好,我们看一下这个认真服务的一个配置啊,是关键的啊, 一个 a 一个 w, 对不对? aw, 这个是 w, 这个是 a, 我们看一下这个什么意思啊?这个做做那个授权配置啊。好, 我们首先看一下这里面定了奥斯图科鲁科普三有,有没有看到这个里面 ctrl, 这个就是用来配置给你可爱的 id 去找可爱的信息的,这个 ctrl 一个对不对?可以看到这里面我们已经传了我们上面创建过的一个可爱的点赞,搜一次这个接口,对不对? 好,然后我们再看一下剩下面这个,下面这个,这个就是配置授权以及令牌和端点访问的一个令牌托克。什么叫访问端点呢?访问端点就是我们 ctrl, 嗯,就四十 k 里提我给我们暴露的一个 ctrl, ctrl, ctrl 我们可以进行获取托杆,嗯,脚烟托杆,刷新托杆,然后授权都是 ok 的, 所以呢我们继续看看这一步干嘛呢?这个进行一个托管增强啊,托管增强呢,然后我们接下来会看一下,往下走的时候看一下这个托管增强是什么意思啊?托管增强就是对我们现有的一个,因为我们现有的那个用户信息里面只会 包含你的用用户名,我们现在就是需要往里面加一些额外的信息,所以呢托克里面加一些额外的信息,所以我们要使用这个托克增加。大家如果在嗯使用过程中需要去增加额外的信息的话,托克里面加额外信息的话,就是像我这个, 我,我这个拖更啊,我这个头里面我加了一个优质 id, 还有优作难,对不对?这是我增加了,所以呢大家如果有需要的话,也是可以去实现这个拖更增强,去增加一些额外信息的。本来这些东西是没有的,他只有一个,只有一个这个东西啊,这个优作难啊。 ok, 这个讲了啊,这个讲完了,大家如果有什么疑问的话可以,嗯,在评论区或者弹幕里面给打出来啊,我会看的,真的会看。好,然后我们看一下这个上面增强,讲完了,然后我们看这个授权方式啊。好,授权方式这个里面看下做 什么东西?首先我们定一个 gw x took 转换器啊,转换器这个是有用的啊,这个有用的,这个是用来给你需要通过这个进行配置,你的公司要的配置,公司要的。好,然后他这里面 啊,这个就不用讲了,这个是增强呢,同样呢把这个加进去,把这上面配置的这个增强链给他加进去,然后这个格兰特,格兰特也给他配进去,没毛病,对不对?没问题的。 ok, 然后这个里面这个也没有什么奖的,这个没什么个奖的,我们再再看下这个,这个是干嘛的?这个配置这个东西是用来就是我这个自然服啊,我要去 教验教验这个托肯,是否是有有权限去访问我当前这个资源呢?我需要去缴验这个托肯,然后缴验托肯有两种方式,一个是本地去实现,还有一个是远程服务去实现。也就是 说软件服务指的就是我去认证中心去拿这个拖杆去认证,去切个拖杆,看下这个拖杆是否是有效,对不对?然后拿回用信息。 然后呢加这个东西是干嘛的呢?因为默认的那个奥斯认证的那一块,认证中心那一块的一个切割偷看啊,他那个端点啊,他是不开放的,他是不开放的,你必须要 把这个东西加上一个,这个才会让他进行开放,我自然服务就可以进行调用了。 ok, 这个奖商啊,然后再讲一下这个托根 sos 啊,这个托根词就决定了托根存在哪里,怎么去存储他。 好,如果你需要把它这个托克啊,需要放到瑞迪斯里面的话,你可以在这里面进行改写啊,把它换成一个托克斯的话,那我现在默认的就是给他他默认的一个 dfo 的托克斯的话,默认的。嗯,在 看下这个,这个同样的,你需要把客户单放进去,一样的。好,这里讲完了我们再看一下这个内容,刚才讲的内容增强啊,可以看到刚才这个内容增强的话,我是把这个 uzid 和 u 字内容塞进去了,对不对?然后大家刚才也看,从我们的那个拖更信息里面获取到了这个, 就是那样和优待力,对不对?所以呢,如果要增强就在这里面做增强,对吧?没有其他地方可以做,就在这做 这个,这个就是转换器啊,刚才跟你说了,这个公司要一个密药队,对不对?然后这个密药的话就是我们通过 gdk 的一个工具啊,生产的一个,嗯,一个贴片,一个密药队,对不对?密药队好,这个 重症之重之一,讲完了我们再来讲之二,对不对?我们讲之二就是安全配置啊,安全配置,安全配置就是我们之前配四分四个问题的进行拦截,就是说有哪些路径需要走这 过滤哪些不需要啊?可以看到大家可以熟悉的可以看到这个东西啊。嗯,这个 os 斜杠星星后面呢?不用拦截,踩死了。斜杠星都不用了呀, logo 也不用拦截,直接是昆明的 ol 了,对不对?剩下的所有请求我都要拦截,对不对? 好,然后这个是进行一个捕获异常的啊,捕获异常就是克兰的认真的,失败的话,这个对咱们的那个后面演示的那个射拳法模式是有用的,是有用的一个呢,射拳法模式就是没成功,就说明这个没配好,导致你不能跳转到巅峰界面。 好,这里面就是认证管理对象,这里面自定义认证器。 ok, 这个认证器就是密码认证器啊,默认的密码认证器啊, 这里面有什么作用呢?就可以看到啊,这里面设置密码认证器,密码密码的模式,这个里面默认是采用那个 b 可爱不,特可爱不的那个确认真模式使用的。嗯,也就是说你在前面需要加上一个大口号,然后比 大口号,然后再加上你的加密的密码,才能被这个框架进行一个解析啊。解析好,然后这里面因为这个密码,这是模式,他有个优字叠加 swiss 的话,你需要,嗯,把这个生死优字题材 sus 塞进去啊,通过认真的时候是调用这个去获取用户名,用户信息,然后进行一个认真的啊。好, 再看下这个,这个认证异常啊,这上面这个模式处理的话,就是针对咱们的一个社群化模式,需要需要单独的处理啊,让他跳转啊,强制跳转,大家可以去了解一下这个三 w 点 out, 可以的, out 的啊,去了解一下这个东西很有用的,很有用的,很有意思的。 好,那下面的话就是一个认真失败,我们给他返回这个客户端,认真失败的一个接送的一个友好的一个错误信息啊,前面我们已经讲完了,认真服务的配置, 创建安全的配置,对不对?好,还没看到效果对不对?大家反应了,但是还慢慢的,大家要等一下啊,我们要把这写完啊,然后就重写错课,你不问他对不对?刚才我们讲了为什么重写这个呢?第一个我是为了抓取日志,抓写那个错误异常,因为不写这个错误异常,我补货不到, 就算我定了格勒波那个 ctrl 的 vis 的吧?是 ctrl 的 vice, 就算我定那个我也补货不到,所以呢,我重写了头,给我把头给重写了,然后直接拿到这个里面了,对不对?好, 然后我们再看一下这个,这个借口干嘛?这个就是,呃,自然服务去获取民药的,公药的自然服务去获取公药的自然获取。自然服务去获取公药也有两种方法,一个本地自己获取啊,就是直接把那个公药保存到本地,我们先休息一下,稍后继续。

今天给大家讲解一下关于微服务场地下的一个安全认证的一个加股思路。首先,呃,我这次讲解的是基于 suecore 的 screen tea, 加好多奥特曼, 我们都知道呃,传统的我们都是采取单体的这样的一个服务,从安全认证的一个角度来讲的话,我们可以分为啊认证以及授权。 从单体的那个场景,单体的一个服务场景来说的话,其实认证跟授权都是在一个服务之中啊,这是一点。第二点呢,就是单体应用他的绘画是会有状态的,然后呢,每一个客户端登录以后,后端都会啊保存这个客户端的一个写审的一个绘画信息。 那么针对微服务场景下面呢,我们会衍生出很多新的问题啊,当然他还是需要啊做一个安全的一个认证,这是不可避免的。然后他同样也是要面临认证跟授权这两大核心的一个问题,然后我们来看一下他会面临衍生出一些什么样的问题呢?首先在微服务场景下绘画是没有状态的,那么我们解决的这是讲解解决的一个办法,就是基于额头 二点零颁发令牌的方式,最终实现后台啊不再维护登录用户的一个信息,然后颁发令牌以后呢交给客户端来自己进行保管。衍生的第二个问题呢,就是服务之间令牌服务之间需要传递用户的这样一个信息,实现共享。 那么令牌在微服务之间的一个传递,我们采用的一个解决办法是啊,第一网关单位转发,然后第二微服务之间及使用后跟费进行一个啊传递。 第三个问,第三个问题是用户的信息啊使用什么载体?因为我们上面说到被服务之间通过令牌啊共享用户信息, 那令牌我们采取怎么样的一个载体才能把我们的信息啊放在这个动感里面,也就是令牌里面实现一统传递呢?这样我们这里就采用了 jwt, 然后实现用户之用户的一个信息直播完,并实现防范改,然后还最后还有一个问题需要面对的,就是说集群之间内部服务之间的一个互相交流的问题,因为我们知道 我们继承的是菲斯格里提。以后每个微服务之间都需要进行一个授权认证,那么我们需要啊,在这个已有的一个授权的规则上面,通过使用内部使用标记的方式,然后做一些例外的假的规则啊,也可以,如果要求更严格的话,我们可以使用一个客户端,客户端的一个整度的一个认证模式,就相当于多加一层防护 好。下面我们通过图例来进行啊,上面说说到的面临的问题,进行一个我们的一个讲解,我们可以看到,呃,在微服务厂里,上面我们把授权跟资源,授权跟认证啊是单独分开的,首先 用户授权认证分开,我们可以看到啊,首先客户端通过请求啊,向这个认证服务器啊发起一个认证,然后获得这样的一个令牌,通过获得令牌以后,携带这个令牌去请求我们的一个资源网关呢,这样你会代为转发啊,把这个令牌一同携带转发到啊我们对应的微服务里面, 那这时候就会涉及到资源的一个授权,资源授权的话也就啊需要实现我们刚才讲到的需要面对的几种问题,第一种就是并排的一个授权认证,以及 啊令牌的一个教练以及资源的认证,还有内部服务的一个认证,也还有就是说没服务之间啊令牌传递的一种方式, ok, 这就是哦,这是讲解微服务场景下面的一个安全认证的一个架构的一个思路啊,下面做一个总结。首先在微服务场景上面,我们的安全认证机制中,认证跟授权是实现需要实现分离的。然后第二点,集成额度 q 按点名按法令牌 来实现规划无状态啊,这个令牌由客户端执行管理。第三,通过网关转发,服务间通过欧冠肥给转发啊实现这个令牌的一个在服务间的一个啊传递功效啊,通常会在请求中,请求头中携携带这个令牌。第四点,通过集成这个 ad 实现这个深层的度根啊,以他作为一个用户信息的一个宅地,实现用户信息的质保函以及防范感。第五点,集群内部服务性的一个呼叫,可以基于授权逻辑的基础上增加意外的规则,这个需要我们自行实现。

os 二点零协议是一个基于授权的开放标准,他允许用户授权第三方应用程序访问他们在其他服务提供商资源服务器上存储的信息,而无需提供用户名和密码。在 os 二点零中,授权过程分为两个主要步骤, 授权码模式和访问令牌模式。在授权码模式中,第三方应用程序首先通过 http 请求发送授权请求到授权服务器并跳转到授权页面。 用户在授权页面上输入其用户名和密码进行身份验证,并授予第三方应用程序访问其存储在资源服务器上的信息的权限。授权服务器将返回一个授权码,该授权码与用户和第三方应用程序关联。在访问令牌模式中,第三方应用程序 将使用授权码请求访问令牌。授权服务器验证授权码并返回一个访问令牌给第三方应用程序。访问令牌是第三方应用程序访问用户在资源服务器上存储的信息的凭证。以下是 os 二点零协议工作原理的详细说明。 资源所有者,用户在第三方应用程序上点击登录按钮,第三方应用程序会将用户重定向到授权服务器。 用户在授权服务器上输入其用户名和密码进行身份验证,并同意授权给第三方应用程序访问其在资源服务器上存储的信息。授权服务器验证用户的身份和授权请求, 并生成一个授权码。授权服务器将授权码以参数的形式添加到回调地址后面,并以 h t t p c 三零二跳转的形式发送给第三方应用程序。第三方应用程序不需要主动触发一次请求就可以获取到授权码。第三方应用程序使用授权码向授权服务器请求访问令牌。授权服务器验证授权码并生成一个访问令牌, 授权服务器将访问令牌返回给第三方应用程序。第三方应用程序使用访问令牌向资源服务器请求访问受保护的资源。资源服务器验证访问令牌并确认其有效后, 向第三方应用程序开放受保护的资源。在 o r s。 二点零协议中,授权码和访问令牌都是在安全传输协议例如 h t t p s。 下进行传输和使用的,以确保他们在传输和使用过程中的安全性和完整性。 此外, os 二点零协议还提供了多种灵活的授权机制,如客户端身份验证、密码、令牌交换等,已满足不同场景下的授权需求。 os 二点零协议通过将授权过程分为两个主要步骤,授权码模式和访问令牌模式, 实现了用户信息的安全、开放和可控的授权访问。第三方应用程序只需要获得用户授权,就可以访问用户在其他服务提供商上存储的信息,而无需直接接触到用户的敏感信息。 这种机制不仅提高了应用程序的安全性,也保护了用户的个人信息安全。 os 二点零协议的实际应用案例有很多,以下是一些常见的例子。 dropbox 用户可以使用 os 二点零协议登录 dropbox, 浙江允许第三方应用程序访问用户在 dropbox 上存储的文件和文件夹。 google, google 提供了 os 二点零认证服务,使得第三方应用程序可以获取用户的 google 账户信息,如联系人列表、电子邮件、日历等。 facebook facebook 也提供了 o at 二点零认证服务,使得第三方应用程序可以获取用户的 facebook 账户信息,如好友列表、个人信息、照片等。 git up git up 同样提供了 os 二点零认证服务,使得第三方应用程序可以访问用户在 git up 上存储的代码、仓库和贡献历史等。 bit pocket bit pocket 也支持 os 二点零协议,这使得第三方应用程序可以访问用户在 bit pocket 上存储的代码、仓 库和贡献历史等。 os 二点零协议的应用非常广泛,在单点登录、第三方登录等方面都发挥着重要的作用。这些应用场景中,用户只需授权给第三方应用程序,即可实现授权登录或访问其存储在其他服务提供商上的信息。

那奥斯二点零他的运作原理是什么呢啊?首先啊,我们来看这是四个角色,那其实就是四个角色之间怎么样去协作的一个问题。 首先客户端要请求什么资源所有者去授权,这是第一步,什么意思呢? 也就是说你打开啊,这个手机 app, 手机 app 里面会有个页面要求你输入用用户名密码,这个过程是什么?就是代表这个 app 的客户端在要求你资源所有者请求你资源所有者给予授权,对吧?所以说第一步是啊,客户端向资源所有者请求授权。第二步 你把用户名密码输入进去了啊,如果你输入正确的,对吧?那这个就代表什么?你给了客户端去授权了,你把你的用户密码以及你的什么这个人脸识别等一些 凭证信息给了客户端,那客户端拿着你的用户名密码以及他自己的身份标识啊,他去请求什么资源服务器啊? 那这是第三步。第三步呢去请求授权啊,这时候这个这个服务器啊,验证一下啊,这个客户端确实是我们我们公司的客户端啊,并且呢这个用户名密码呢也匹配啊。好,可以,那我认证通过了,我这时候就给你一个什么令牌啊,也就是我们的所说的偷看, 我给你个偷啃,然后客户端拿到这个偷啃之后就可以再去操作了,比如说你要做支付操作,对吧?那你这个时候会去干什么?去调用资源服务器,比如说资源服务器是一个订单服务,那这个时候 你会带着什么?带着上一步给你拿过来的头啃给你的令牌,你用去令牌去啊,请求这时候 资源服务器拿到令牌以及看你要做的操作之后呢?去认证服务器去看啊,这个偷看是否是正确的,是否是有效的,是不是伪造的啊?没有问题。 ok, 那我就去帮你做转账啊,帮你去做支付啊等等操作。然后呢我给你一个啊,应答的一个结果,给你个结果。那 以上这个六步呢?就是奥斯二点零的一个啊,整个流程原理。

大家好,欢迎来到本套课程的第三课。在本课程中,我会为大家讲解 os 二点零协议以及其实现的上半部分。在这一课程中,我会为大家介绍 os 二点零的基本概念。 在第二课时,会用拍森编写 os 二点零的一些基本功能,在第三课时中,会用 fnast 编写一个 os 二点零的授权服务器。下面让我们开始第一节课时的讲解。 在本科学中,首先我会对 os 二点零做一个概述,说明什么是 os, 他的应用场景以及 运行流程。接下来我会简要介绍四种授权模式,并对他们进行区别。最后重点讲解授权码模式。 os 是一个正式的互联网标准协议, os 二点零是它的后续版本,主要用来解决在无需用户提供用户名密码的情况下,第三方应用程序能够获取用户存储在服务器 提供商那里呃存储的某些数据。比如,当我们第一次访问某网站时,可以选择使用微博账号进行登录, 登录之后,即使我们没有填写任何个人信息,这个网站也自动使用了我们微博的昵称和头像。这个过程就是 off 授权的过程。请注意,在这个过程中 出现了三个角色,微博用户、某网站。此时欧奥斯的作用就是微博在经过用户同意的情况下给某网站一个访问权限。 一般来说是一个访问硬牌,英文名字叫做偷肯,是某网站在一定时间内可以访问用户存储在微博上的特定资源,比如头像、用户名等。 让我们来看一下整个过程的流程。在这张图中, connect 代表第三方的某网站,用户是 resort is honor 这个角色。 auto residence server 代表微博的授权服务器,由这个角色发放 token。 resort is server 代表微博的资源服务器,由这 这个角色来提供用户的头像和用户名等资源,同时资源服务器可以和授权服务器的同一个。在整个流程中, a 步骤,当用户使用微博登录某网站时,客户端要求用户给予授权。 b 步骤,用户同意给予授权。 c 步骤,认证服务器确认授权无误之后,同意向客户端发放令牌,客户端使用令牌向资源服务器申请获取资源,资源服务器确认令牌无误,同意给予资源。 这个硬牌是针对每一个第三方应用,每一个应用一个,并且拥有时效性,而且用户可以手动管理硬牌的有效性。可以看出,在这上面的流程中, b 步骤是授权的关键。下面我为大家讲解 bos 提供的四种授权方式。 授权码模式授权码模式的特点就是通过客户端的后台服务器与服务器提供商的认证服务器进行互动来获取 token, 这个过程不通过用户的委婉系是最安全的一种方法。 第二种方法是简化模式,在这个模式下,没有 os 流程中的 c 和 d 的步骤,而是用户浏览器通过资源服务器发送的代码提取偷啃并直接发送给第三方应用程序。 第三种是密码模式,在这种模式下,用户必须把自己的密码给客户端,但是客户端不得存储密码, 通常这是在用户对客户端高度信任的情况下。比如客户端是操作系统的一部分,或者是由一个著名公司出品的产品,而认证服务器也只有在其他模式无法执行的情况下才考虑使用这种模式。第四种是客户端模式, 在这种模式中,用户直接向客户端注册,客户端以自己的名义要求服务服务提供商提供服务,这其实不存在授权的问题。 其中授权码模式是功能最完善、流程最严密的授权模式。简化模式,不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳惯了授权码这个步骤。密码模式 需要用户向客户端提供自己的用户名和密码。客户端模式指客户端以自己的名义,而不是以用户的名义向服务提供商进行认证。由于其他的模式都是授权码模式的某种简化版,在本课中我们只针对授权码模式进行讲解。 还记得我们之前说过的几种用户角色吗?用户代表 ru sorry is honor can i 代表第三方的某网站, author raisin 代表微博的授权服务。这里的 uzain 直译过来就是用户代理,表示用户所使用的浏览器,因为毕竟整个授权过程稍稍有点复杂,如果浏览器能够代理我们操办一切,用户只要点点鼠标就好了。还记得 之前的 os 流程看 a 步骤吗?对了,用户通过浏览器发起登录某网站的申请,让我们从正义开始。现在某网站,也就是这个 canat, 通过步骤 a 响应用户的登录请求, 将用户重定向至微博认证服务器,并附上一个 ui b 步骤,用户微博要求用户给予授权,也就是大家现在看到这个页面。 c 步骤,如果用户同意授权,嗯,微博认证服务器将用户再次重定向至 a 步骤中某网站提供的 ui 地址并附上一个授权码。之后这个网站 通过嗯步骤 d 将授权码以及 a 步骤中提供的 ui i 向 授权服务器申请偷啃授权服务器通过对授权码以及 us 地址的核对来确认是否发放硬盘。至此,我们就走完了 os 认证的整个授权流程。让我们来总结一下这里需要实现的部分。首先,这里是一个需要三方合作的任务, 包括用户某网站,这里也叫做 clint 微博,当然也可以叫做授权服务器和资源服务器组成的共同体。 由于前一节课程中我们已经大致实现了资源服务器和授权服务器,只需稍作修改就可以满足要求。下一节课我们将进一步进行分析并兵马完善它。那么下一课时再见。


什么是 sso? 与 os 二点零协议有什么关系?其实这个问题啊,我们是抽的一个呃,我们同学们面试的一个真题,但是其实这个问题的本身重点是什么呢? 他重点既不是 oversi 点零,也不是 ss, 而是你要理解互联网场景向不同的登录场景 sso 和 oversi 点零,其实他们的协议场景是不一样的,使用场景是不一样的。而很多同学对这个完全没概念, 就觉得 s s o 和 over 小姐姐反正都是做这个互联网呃,权限认证的。很多同学都是这样一个模糊的概念,所以一旦面试官跟你聊深了一点, 比如说也像 o r 三点零弦一样,聊怎么设计一个 s s o 的一个场景。哎,往往就会很多同学就容易翻车了,问懵了。因为对这个概念很模糊,其实他们两个完全是不相关的两个场景。那怎么理解呢? o r 是二点零 的场景,其实那使用场景通常称为联合登录,重要的是什么呢?重要的是一处注册,多处使用。 这个本视频的文档我已经整理好了,并且与往期内容一起汇入,放在了视频的最后面,截止看完一定对你有帮他。这个场景是一处注册,多处使用。这个关键也就是比如说我们注册了一个微信账号,我就可以用微信账号登录百度啊,登录其他很多很多应用,对吧?很多这很多用户都可以用这个微信来登录, 这个是一个重要的场景,而 s s o 是什么呢?是 single sign 单点登录,它是一处登录,多处同时登录, 所以这个场景跟 osa 零其实是不不相关的,一处登录,多处同时登录,比如说, 呃,比如说我们常见的我们访问淘宝,对吧?访问淘宝,当我用淘宝完成了登录之后,淘宝这边完成登录了之后,这个我再访问天猫,天猫这边同样也是登录的,对吧?同样也是登录的,但是如果我在天猫这边退出,退出了之后我再来访问淘宝, 你看这个时候就变成没有登录了,对吧?这是单点登录的一个场景,单点登录往往更适合于内部系统之间,它并不适合多个系统之间,所以这是单点登录的一个场景。那单点登录其实跟我们相比 os 二点零协议来说简单很多,我们之前也就介绍过,对不对? 呃,之前在介绍一个分布式的一个存储方案的时候就介绍过。其实啊, single s s o 它的关键是什么呢?就是你的 say 选信息统一存储 s s o 的关实线,关键是将 station 信息集中存储, 它同样是基于这种 cookie 加 season 的方式,只是说把我在淘宝上登录的这个 season 信息不要放到,不要放到淘宝的这个 top 上面,而放到背后的一个呃,第三方存储,比如说 radius 当中,这样的话,我的天猫呢,也可以从这个 radius 当中去读取信息。 就是我们之前呃,第一个图啊,我们看一下这种 c 选共享的这个机制, 就是这种机制就足够实现一个呃,单点登录了,而并不需要像 ow 十二点零协议这么复杂的一个流程。只是呢,我们通常在用这个 sso 的时候,什么呢?都是使用 supreme security 这一个框架来帮我们实现,因为 supreme security 的这个框架既帮我们实现了 over 三点零,也帮我们实现了 s s o, 但是也了解他们的,其实他们两个的本质是不一样的。哈,我们呢也有一个自己的一个小 demo, 这里呢也是用这个。呃,嗯, supreme security 框架来快速实现的一个 s s o。 它需要什么呢?我们有两个客户端,比如呢,这代表是那个,这个代表淘宝,这个代表天猫,后面呢,会有一个专门的一个授权服务,统一授权服务,我们把这应用都启动起来啊。 呃,启动起来。 好,这个启动在八三零零端口,对吧?我们刚才已经看到了,这个启动在八 三零零端口,然后呢启动这个客户端,第一个客户端这个表示是那个,这个代表是百度啊,这个代表是那个淘宝啊,这个淘宝,然后呢,这里代表是另一个客户端,代表是天猫。好,淘宝启动完了,在八三零幺端口,然后呢,天猫在这个 启动在天猫是佩戴八三零二这个端口。好,当我们配置完成之后,我们尝试来访问我们自己的 八三零幺。呃,八三零幺端口,我们要找他的一个 controller 来访问,比如说我们看他的这个 mobile 吧,嗯, mobile inquiry, 再加一个 client 后缀。啊呀,弹到一个登录窗口,但是这个登录窗口注意到没有?是八三零零这个端口,八三零零对应的是我们这个 off server 的这个端口,所以我们在这里完成登录之后, 到了八三零幺这个端口了,对吧?到了八三零幺,但我们这个时候再来访问我们另外一个呢?另外一个是八三零二端口,对吧? 哎,这个看见没有?这是单点登录,单点登录,这样就拿到了这个 mobile 的信息,其实它之机遇的是什么呢?就是这个 section 的集中存储,把这个 就是我们这个应用的,相当于是什么呢?把他们的一个筛选信息集中存储到 off server 这个应用当中,由他的几种管理。 其实我们不使用 supreme security, 其实也是挺好实现的,就把它好像都换成一个 redis 嘛,对不对?那所有的验证的时候也是到 redis 里面去访问就行了,但是 supreme security 呢,帮我们做了更好的封装,那就集中到这样一个 os server 这样一个应用当中,就管理 session。 好,那同样呢,当我们在另在其中一个应用去完成登录, 我们去进行登出,我们看登出这个端口的防漏镜啊,嗯, common gun log out。 呃,这个灯灯出就不能在这里灯出了,要到八三零零上面, 在八三零零这上面完成登出了之后,我们再看八三零二这个应用,我们来刷新,你看他也没有登录了,看见没有,他也失去了登录信息,他也跳到了这个统一的登录中心,所以这是 一个单点登录。这个场景我们看淘宝呢,其实也类似这样的一个场景啊,你看他登录者是在 logan 淘宝顶上,然后呢?啊,这里是到天猫顶上,他们只是一个实现方式不一样,对不对?当你在这边完成登录了之后, 那你在这边完成登录了之后,再访问天猫,嗯 嗯,这网速有点慢,其实我们刚才已经看到效果了,对吧?在访问天猫的话,其实上天猫这边呢,他就已经拿到了这个登录的信息,所以这是呃呃, s s o 看这里是又拿到了登录信息,对吧?这才是 s s o。 所以这个问题的关键在哪里呢?就是关键是 s s o 和 oversize 二点零场景的区别, 这个一定要弄明白,实际上 o s s o 的实现机制远比 over 三点零简单很多啊,所以这是关于这个 问题好。

前段时间有些同学私信我,让我讲一下儿子做的一个授权模式,并且还强调那个零基础的那种, 我也不太理解这个零基础到底是什么样的一个程度啊?嗯,但是我觉得任何接单的同学看完我这个视频的话,对奥斯兔的一个理解将会有一个很大的提升,这不是吹牛的啊, 大家看完看到最后就知道了,并且也会熟练的去借助这个斯文斯克里奥斯兔这个框架去轻松搭建一个认证服务和自然服务。好,废话不多讲,我现在就直接进入主题了, 首先的话,我们了解一下斯文斯个体这个是什么东西啊?好,斯文斯格里的话是一套安全框架,并且他可以进入 rbsc, 也就是我们常说的一个角色的权限权限控制系统啊,控制的一个框架,然后他用来就是对用户的 访问权限进行控制,核心思想就是通过一套费得欠,然后进行一个拦截和过滤。大家对四分四个位体的话,这一块应该是肯定有了解,因为我们这节课并不是主要去讲四分四个位体啊 啊,所以呢,大家一定要有一个四门四个位的一个基础啊,使用的基础啊,对他的一个深入了解也不用太多,了解好,四边四六个里就是一个简单的一个 rbac 的一个实验的一个角色权限控制的一个框架。好,然后我们大概了解了四边四个的,我们再来看一下奥斯兔啊,就是今天呢咱们的一个主题 合作兔,是他是一个协议啊,不是一个框架啊,他是一个官方定的一个协议,他是一个关于授权的官方标准,核心思路就是通过各种认证手段进行认证,拥护身份啊。然后这个认证的手段的话是,嗯,具体是怎么进行一个认证? 你通过手机号认证呢?还是密码认证还是什么样的认证?这个都是用户可以自己去实现的并颁发。嗯,如果认证成功之后这个二字兔的话,那个协议会颁发一个托给你,然后我们会带着这个托肯去访问我们这个托肯被指定范围内的限定时间内的资源啊。 嗯,这个第三方应用是什么意思呢?嗯,我们像我们一般会使用在一些网站上会使用这个微信账号啊,进行一个登录,对不对? 嗯,是吧?所以呢,这个一些这这个网站就相当于第三,就是这个微信就相当于第三方应用啊。第三,哦,不是这个这个网站就相当于第三方应用啊, 所以呢,嗯,他就会需要去到那个微信里面进行一个认证,因为我使用的是微信这个账号,然后拿到他的 took, 嗯,去认证,然后呢这个网站就能拿到 我们的微信的一个账号外边微信的一个名称和微信的一个头像,对不对?所以这个就第三方为什么这么做呢?这个肯定是基于安全的嘛,因为我们这个随便做的不就安全吗?对吧?然后 他这个安全的话是怎么就安全了?因为你不需要对他进行一个输入你自己的用户名和密码,也就是说你在网站上面你不需要输入用户名和密码,你就直接能使用我们微信的一个账号进行登录。 好,这个大概的流程,后面会通过这个流程给大家进行解释啊,介绍我们四种授权模式的时候,给大家进行一个解释。 好,我们然后我们再看下随便 siri kitty、 奥斯兔的,为什么会有这个啊?为什么有四边 siri kitty, 还有一个呃,奥斯兔呢?因为咱们随便 siri quit 阿斯兔的话,就是基于对奥斯兔的一个时间啊,因为奥斯兔的话是一个协议嘛,所以随便 siri、 kitty、 奥斯兔的话,就是对这个奥斯兔的一个 时间。不怕实现就是建立在思维人 c 个体的一个基础之上,实现了奥斯兔的一个规范概念部分铺垫完成了,现在我们就讲一下我们奥斯特的四种授权模式,这个肯定是大家肯定关系,关系呢,前面讲了那么多的一个理论,碰见, 让我们开始讲一下,我们是那个 out to 的一个四种授权模式啊,为什么提供四种呢?而不只是一种呢?因为四种模式的话,代表二次授权授权第三方的一个不同户型程度,它指的什么意思呢?因为它这个四种授权模式的话,它有代表的 等级是从高到低的啊,也就是说我们可以把它理解成安全程度啊,安全程度从高到低啊。 ok, 首先我们来介绍我们的授权码模式,也就是最安全也最为常用的啊,咱们用微信账号进行一个登录的话,就是用的咱们的一个授权码模式啊。好, ok, 我们看一下啊,这个场景啊,咱们这个社马使用的一个场景啊,就是当用户像,当用户使用,像使用 b 的账号,使用 bb 网站的账号啊, 如微信,对不对?然后授权登录 a 网站,这个就是我们嗯,做的一个场景啊,然后这个用授权码模式怎么去做呢?首先会跳转到 b 网站授权页面,是不是我们首先会去登录到 a 网站吗?然后进入到 a 网站, a 网站有一个这样的一个按钮对不对?有个微信登录, qq 登录,微博登录,对不对? 然后呢,他会跳转到 b 网站授权页面,输入 b 网站的用户名密码,我们对你的微信的话,就是微信的用户名密码,也就是我们可以扫码啊,其实啊,嗯,然后呢,这里面是 b 网站认证 验证通过之后回掉网站, a 提供到一个回掉地址,因为他那个我们在进行射转,射转跳那个跳转的时候啊,他会带上那个软线网站的回掉地址, 然后呢, b 网站验证通过之后,会根据这个回调地址啊进行个调用,也就是回调啊,并带上我刚才颁发的一个扣的好看,这个扣的,大家记住啊,不是拖更,不是拖更。然后呢, a 网站收到回调之后会提取这个扣的,因为我们拿给他,对不对? b 网站给他了,然后 a 网站的话, 嗯,拿去这个扣子之后,再会去调用 b 网站获取托根的借口,并带上 a 网站在 b 网站上上面注册的可爱的安利和克拉斯科学的,也就是说我 a 网站跟 b 网站进行一个,那个是,嗯,换季拖根的时候,嗯, a 网站必须要在 b 网站进行一个注册,这个 clan 的啊,也就是我们经常去使用过的一个 应用啊,第三方平台,我们在第三方平台去注册 app 这个应用啊, ok, 好,大概我们看下这个图啊,别说话,看图好,前面讲到大家都困了啊,好,我们再看一下图,首先我们一个用用 a 请求 b 网站账号登录, 就是在这个里面,我们在网站请求,然后呢, a 网站会返回一个授权跳转一个链接啊,这个授权链接是跳的 b 网站,然后呢, 用户拿这个点击这个跳转链接进行个请求登录,并输入用户名和密码啊,用户名密码,然后登录,然后到 b 网站就认证通过吗?通过了对不对?然后会带上扣的毁掉 a 网站啊,毁掉,毁掉 a 网站, a 网站之后的话,他会返回带上一个扣子进行一个访问这个 a 网站,然后 a 网站收到了这个扣子,然后又会带上这个扣子和这个扣子端的一个信息啊,也就我们在他上面注册了 clan 啊 应用啊,然后就会换你哦调用那个获取拖更申请拖更的一个借口,并网站认证,也是进行一个信息合适之后,然后就返回这个拖更啊,根据留客的换取到一个拖更啊,此次整个六人就认证完成了,然后呢这个拖更就会跟这个用户进行一个绑定啊,进行一个绑定上了啊, ok, 然后呢我们看一下这个,呃,简化模式啊,简化模式,简化模式就是他会有个中间人攻击的红线啊,因为他是什么意思呢?我们看一下简化模式,在射眼码的基础上减去了获取授权码的一个步骤啊,也就是说他把第一个这个步骤啊去掉了,去掉了,我们看一下他怎么做的 步骤,去掉之后的话就是 b 网站认真通过之后直接返回脱根,哦不,是返回社群码,这个又又又称为一个隐藏式的一个模式,隐藏式的模式好,嗯,所以 简化模式相对于那个社群码模式的话,就是实现起来更简单,因为他省去了获取那个呃社群码的过程,直接给你个拖开好。然后呢,我们看一个步骤,就是跳转到 b 网站设置页面,输入 b 网站用户名和密码,然后 b 网站认证服务验证通过回调网站 a 提供的一个回调地址, 并带着拓客信息,到时候 a 网站就有了一个 top 点,是不是?我们看下这个图啊?首先同样呢,前面的步骤是请求 b 网站账号登录,然后呢返回授授权跳转链接, 拿到社员跳转链接,用户点击之后就会去登录,嗯, b 网站对吧?然后输入 b 网站的用户名和密码,这个时候 b 网站就直接返回这个拖根,回掉这个 a 网站提供的一个回调地址,这时候就已经拿过来拖根,所以呢,他省去了这个步骤好,靠的,这个步骤对不对? ok, 然后我们再看一下啊,前面讲了授权模式和简单模式,我们再看一下密码模式啊,这个我看我写的啊,就是除非没得选采用,采用对不对? 毕竟涉及到拥护一个隐私,是不是?涉及到拥护的隐私,这什么意思呢?就是 a 网呢,要求用户直接输入 b 网站的一个用户名额密码, 对吧?这肯定不安全的呀,我在 b 网站成了用户名的密码,我直接在 a 网站进行输入是不是?那肯定不太安全呢? a 网站自己拿用户的名和密码去 b 网站进行登录,直接获取,错坑对不对?同时虽然功能也能实现对不对?但是呢, 你毕竟你在其他网站上输入另外一个网站上的一个用户名密码,这肯定是不太安全的呀,对吧,你哪知道?嗯,这个网站有没有存呢?虽然 协议要求那个网站不能去存,但是谁知道呢,是吧,所以我们再看,就看一下这个部长, a 网呢,要求用户输入账号密码, a 网站携带账号密码去 b 网站认证, b 网站认证通过直接返回拖根结 a 网站。好吧, 这是哪一步骤?我们直接看图啊,看图将会了解的更清晰。首先用户输入 b 网站的账号和密码登录这个 a 网站, a 网站的话就携带账号密码和客户端信息申请拖客,然后 b 网站直接返回托坑给 a 网站好,这个时候就直接登录成功了,对不对?这个一般不用,除非没得选才进行使用啊,因为这个超不安全的。 好,最后一个充电模式,我们讲一下客户端的一个模式啊,什么叫客户端模式呢?客户端模式其实跟用户是没有关系的啊,根本都涉及不到用户啊, 他是网站间的相互认真啊,应用之间的相互认真,其实也可以说他不属于奥斯拉啊,因为网站 a 自己的身份,用网站 a 自己的身份去 b 网站认证获取脱根,也就是我们刚才在那 b 网站注册的一个 clan 的对不对?应用 投看 a 网站上的所有的用户去访问 b 网站的资源都是用的 a 网站自己的客户端信息,并不是属于用户的一个信息。去访问 b 网站的资源,好,这是客户单模式,让我们看一下客户单的模式,一个场景啊,这个一般用微服务之间进行认证啊,比如那个服务 a 啊,向访想访问那个啊,这里面文档修改一下啊。 想访问服务 b, 那么服务 b 呢?需要去缴验服务 a 有没有权限访问自己,所以呢就需要缴验服务 b 的一个拖更,这时候就可以采用客户端模式,对不对?后面讲自然服务去认证,切个 高跟的时候用的就是这种方式啊,不过后面我修改了啊, ok, 我们看下这个图啊,看图看图将会了解更加清晰啊。首先 a 网站写在客户端的信息,也是我们注册的一个申请的一个可烂的信息,然后去申请这个拖更,然后 b 网站就直接针对这个可烂的信息 颁发一个托肯给啊,哎,网站好,现在的话,四种授权模式讲完了,大家是不是有个疑问,前面三种授权方式拿到托肯之后是怎么和用户进行绑定的呢?也就是说我这个用户登登录完之后的话,必须要通过毁掉, 通过毁掉然后把这个图案给 a 网站了,那跟我用户有什么关系呢?怎么跟用户进行绑定的呢?好,这个接下来我给大家进行讲啊,因为接下来我们就直接是撸起袖子开始干了,对不对? 我们会在最后的话有个常见问,这里面会给大家进行解释一下啊,他怎么进行锻炼用户的啊?好,我们先休息一下,稍后继续。

大家好,今天给大家分享一个基于 spring offer 统一授权登录验证实现案例,先看看演示效果, 接下来我们来看看实现代码,这里配置的是需要授权的客户端 id 和密要, 这个方法是授权后的回调方法,主要是获取授权的用户名和密码进行登录,这个方法是给第三方系统获取授权用户名和密码的,我这是为了测试给的默认的用户名密码,真实用的话会查数据库。这个方法是认证系统的登录授权, 要认证成功的话,需要把授权客户端 id 和密奥配置在认证系统库里面,密码要用加密方式存储 在库里,还要配置授权类型和回调方法。地址, 这个是认证中心登录成功后要调用的方法,会会查询客户端 id 和登录信息。今天就分享到这了,有不懂的可以联系我啊。