简介
在OAuth 2 是什么-带你搞懂授权码流程中我们讲到了授权码流程的OAuth 2。这一篇中,我们将讲解的是另一种设计到用户交互的流程,简化流程(implicit flow)。
简化流程也是曾经经常使用的一种模式,特别是以javascript为主的一些应用(主要是一些单页应用Single Page Application)。但是在去年(准确的说会议讨论是2018年)的发布的指导意见可能会改变这种趋势(详情见参考),意见中建议了不再使用简化流程于基于javascript的应用中。不过这个属于后话,我们会在之后的篇章中涉及到。
implicit flow如果直译过来是隐式流程,之所以翻译成简化流程是因为其是简化版的授权码流程。省略了发送到客户端的授权码这个过程,取而代之的是直接发送了一个access_token给客户端。
同样的,当我们打开一个本地应用,这个应用想要访问一个我们在其他服务器上的资源。但是我们并不希望将我们访问这个资源的用户名和密码透露给这个本地应用(一个简单的例子就是微博的客户端有很多个,我们没办法知道这些第三方客户端会拿着我们的用户名密码做什么,是不是会很不专业的用明文保存着用户名密码等等),这种情况下我们就可以通过OAuth 2的简化流程来生成一个token,本地应用可以通过使用这个token里访问我们的资源。
令牌请求
a. 发送请求
当应用需要访问其他服务器资源的时候,应用发送一个请求到授权服务器上 ,但这里跟授权码流程不太一样的是,应用直接请求的是一个access_token而不是一个授权码。
这个请求和授权码流程一样,包含了特定的参数,