目录
前置知识:Oauth2授权思路
在我们日常生活中,我们会进行一个浏览器平台的登录或手机某一个app进行登录。
以京东商城登录作为例子演示:
对于京东商城的第三方应用登录来说,我们知道登录方式为Oauth2授权模式最为安全的code码授权模式登录。
具体步骤演示:
1.假设说我们登录的就是网页版的京东商城。
记住一点就是这里的京东商城就是我们之后所说的第三方应用。
2.我们可以进行选择使用微信进行登录。而不是使用京东账户登录。
记住一点:这里的微信登录跳转到的微信开放平台,其实就是一个履行Oauth2协议的资源管理
器。微信开放平台保存着我们用户的信息资源 所以说是资源管理器。
3.点击微信登录我们就会跳转到微信开放平台 下面这个即是微信开放平台:
对应url分析如下:
4.扫描之后 直接登录跳转到我们的界面
具体分析如下:
在登录成功之前与登录成功这一段进程中,我们会先进行回调到redirect_uri,此时会带上参数
code。这个过程中,资源管理器(即是这个微信开放平台)对应的授权服务器会与第三方应用京东进
行二次认证,首先接收到这个code码进行验证。之后资源管理器 进行生成一个token,然后授权服
务器进行颁发这个token给第三方应用京东。京东拿到这个token之后进行请求资源管理器中的资
源,在授权管理器进行比对审查之后,会把相关的资源信息给到这个第三方平台京东。
最终登录成功。
细节:
该界面对应的url地址:
其实就是我们在之前请求第三方应用时对应请求url地址中的回调地址对应的参数:redirect_uri
当我们授权登录成功之后,就会跳转到redirect_uri对应的回调地址。可能会存在疑问,为啥这两个地址相差这么大,为的是安全性。
总结一下Oauth2授权思路 :
对专业术语进行解析:
资源拥有者:即是我们的用户。用户拥有用户信息这些资源。
第三方应用:即是像上面所说的京东客户端,或是淘宝app等等
资源服务器:顾名思义,其实就是资源的管理器。资源服务器进行管理着我们用户的用户信息资源
授权服务器:这个授权服务器没有具体的显示出来,但是它确确实实是存在的。它对授权的操作起
了很大的作用。该授权服务器具体位置,可能位于作用之间。也可能就是存储在资源服务器之中,
这主要是依照不同环境的配备
表述一下流程:
1.一个人(不一定是资源拥有者)进行在第三方应用进行访问资源服务器,可能说这个人不是资源拥
有者,可能就是单纯的是它的朋友 然后需要借用它的用户信息进行登录一个第三方的平台。所以
说为了安全起见,像之前京东登录的操作,就是采用code码授权模式。这种授权方式 并不会暴露
用户名和密码这些用户信息 ,这种授权方式就相当于在资源服务器与第三方平台之间隔了一道墙
这道墙的作用就是:我可以允许你进行登录,但是对于资源拥有者对应的用户信息 我们还是只在
我们的资源服务器中进行暴露出来。第三方应用只是可以进行登录 ,但是不可以进行拥有这些资
源信息
2.资源服务器要求资源拥有者授权给第三方应用
3.资源拥有者给第三方应用授权。那么此时资源管理器 也即是资源服务器会生成一个token。这个
token会由授权管理器进行颁发给第三方平台
4.然后第三方平台登录成功
小结:具体还有很多需要细节点在另外一篇文章:Oauth2的四种授权模式中进行详细展开。