“资源所有者密码流”与“隐含授权”之间的差异

时间:2018-04-08 00:54:27

标签: oauth-2.0

  

隐式授权是优化的简化授权代码流   对于使用脚本语言在浏览器中实现的客户端   作为JavaScript。

     

资源所有者密码凭据(即用户名和密码)   可以直接用作授权授权来获取访问权限   令牌。

https://tools.ietf.org/html/rfc6749#section-1.2

我的问题是了解这两种拨款类型有何不同?

2 个答案:

答案 0 :(得分:0)

如您所述,“资源所有者密码凭据授权”适用于资源所有者与客户端(例如设备操作系统)具有信任关系的情况。一个例子是Facebook应用程序 - Facebook信任他们在设备上安装的应用程序。

因此,客户端应用程序不必在auth-server中注册。正如您在request中看到的那样,client_id不会作为参数传输。此外,流程更简单 - 在单个请求中检索访问令牌。

答案 1 :(得分:0)

在这里重要的是您输入凭据的方式和位置。

隐含

您的应用是https://example.com,要进行身份验证,您将转到https://auth.some-domain.com(甚至是https://auth.example.com)。成功通过身份验证后,用户将被重定向到https://example.com/some-callbackurl?#token=token-value

要注意的点:URL中的重定向和令牌

资源所有者密码流

您的应用是https://example.com,要进行身份验证,您将转到https://example.com(或https://example.com/login)。成功通过身份验证后,用户将被重定向到https://example.com/home

注意点:URL中没有重定向和令牌交换

基本上,如果您拥有该应用程序(客户端应用程序,服务器应用程序,身份验证应用程序),则可以这样做。基本上,您是负责身份验证的人-而不是第三方应用程序。您信任您的客户端应用。

https://example.com/login从用户获取凭据,并进行HTTP REST POST(例如)调用,并获得作为令牌的响应(以及可选的刷新令牌)。它将其保存在localStoragecookie中,然后重定向到主页或它必须重定向到的任何页面。

在交换中没有重定向发生。

相关问题