开发大佬说的单点登录的思想
总的单点登录的思想:
1。你判断看到当前用户没有登录,就跳转到对方的认证登录页面,让用户登录
2、登录成功后,对方的认证服务器会回调你这边提供的一个接口(就是跳转过去的redict_url,你自己定义的,定义好就写在那个参数上面,人家会根据这个接口告诉你),告诉你一个code或者token
3、当你通过自己的新增的接口拿到code或者token后,再利用这个code或者token去认证服务器拿到用户信息,当你拿到用户信息了,就代表成功登录了,之后的逻辑 就和你以前原来的登录后拿到用户信息 一样。就是这个
下面这个图就是第三步
1.总的流程图
1.第一问,这个请求在图中的哪个步骤
第一问的解答:属于图中的第二个步骤,然后是由我们自己前端或者后端发送的,这个就是对方的地址,你要重定向过去,一般来说,后端重定向;
那后端什么时候重定向呢?答:判断请求有没有登陆,没有登录的话就重定向过去,就相当于,没有登陆,你会跳到你自己的登录页面,只不过现在不跳自己的页面了,跳去对方的。
第二问:这个第一步怎么访问法
答:浏览器,就是输入你项目的地址,如果没有登录,是不是要跳去登录页面,这个登录页面本来就是你平时开发的那个,但是现在不要这个了,用对方的来替代。
http://sso.tellhow.com/oauth/authorize?client_id=SSO&response_type=code&redirect_uri=http://127.0.0.1:8899/paraOsc/index&state=SSO-LOGIN
这个就相当于对方提供的接口,返回值就是通过回调redirecturl,是用户点击你的应用,你重定向到这个地址,没登录就发送。
重定向到哪里的? 答:这个就是你项目的一个接口,他调用这个接口(redirect_uri=http://127.0.0.1:8899/paraOsc/index&state=SSO-LOGIN),这个接口你需要自己开发,参数都给你定义好了。
第三问:重定向是哪个步骤
答:第六步。
第四问:后端写代码发送 还是前端写代码发送
答:步骤7 我圈红的这个得我自己发送对吧,对,后端发送,http请求,后面的步骤不用看了,一般去到7就可以,789都是一样的,他这里有点多余,看你现在文档的步骤
就是第8步
第五问:第八步应该不是我发送的吧
答:应该说就是第7步,实线都是你调用,虚线是返回
第六问:他第九步咋没写,没写 文档
答:不需要这一步了,不需要这一步?不需要第九步的话 拿我拿到的token有啥用?我不得带着token去请求我的应用吗 我的应用判断有token说明已经登录了?就可以访问,你为啥说不需要第九步? 答:就看你的文档有没有这一步,
只有第九步有,只有第九步是checktoken请求的。
答:那就有第九步
答:是不是大概流程就是那样子,但是我这边开发接口的话 对方是不是也得开发对应的接口,不然无法接受我的请求,就他们的认证平台,答:对,他们早就开发好了,他们就是认证服务器啊。
密码验证去掉,但是判断有没有登录,这个保留,没有登录就和原来的一样,让前端跳转到登录页面,但是这个登录页面不是原来你项目的登录页面,是认证中心的那个url
第七问:怎么判断他有没有登录的?
答:这个方法。你的项目用的是auth2.0,认证那边也是,所以我觉得你项目的auth2..0可以直接不要了,重新写代码接入对方的认证服务。为了跳转到登录页面,输入密码登录,就是重新写登录验证,就当这个项目还没有做登录接口。
记得需要知道谁是认证中心,确定好角色再开发
标签:单点,登录,第九步,接口,认证,token,开发,文档,页面 From: https://www.cnblogs.com/rapper-start/p/17154040.html