隐式授权是优化的简化授权代码流 对于使用脚本语言在浏览器中实现的客户端 作为JavaScript。
资源所有者密码凭据(即用户名和密码) 可以直接用作授权授权来获取访问权限 令牌。
(https://tools.ietf.org/html/rfc6749#section-1.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(例如)调用,并获得作为令牌的响应(以及可选的刷新令牌)。它将其保存在localStorage
或cookie
中,然后重定向到主页或它必须重定向到的任何页面。
在交换中没有重定向发生。