Google OAuth2.0是否支持资源所有者密码凭据流的OAuth流程?

时间:2013-09-05 16:14:27

标签: oauth-2.0 google-oauth oauth2-playground

好心人互联网。

Google OAuth2.0是否支持资源所有者密码凭据流的OAuth流程? ......如果是的话,那么:

A。)可以在Google OAuth2 Playground上测试此类OAuth流吗?

B。)是否有使用Google OAuth2.0和Google API的“资源所有者密码凭证流程”的任何示例?

根据最近在Oslo NDC 2013中的OAuth演示文稿,此主题流显然会一起跳过授权端点,并直接与OAuth2服务器的令牌端点进行对话。请求语法咒语应该看起来像这样:

grant_type=password&
scope=resource&
user_name=owner&
password=password&

我的理解是资源所有者密码凭据流适用于后端企业类型的情况下的受信任应用程序(可以安全地存储名称 - 密码对)。

此特定OAuth流程不需要最终用户同意交互(不会弹出浏览器以接受,然后获取返回的授权代码等)。在这个主题流程中访问&刷新令牌再次直接返回:没有最终用户交互(尽管输入了用户名密码后)。

查看Google OAuth文档(link to Google OAuth2 docs)似乎没有提及类似资源密码凭据流的任何内容,但不确定是否一定意味着Google明确不支持它。

非常感谢任何帮助或建议。

提前致谢

2 个答案:

答案 0 :(得分:7)

亲爱的网友,

Google确实不支持资源所有者密码凭据流,但谷歌建议您使用已安装的应用程序流,如下所述:https://developers.google.com/accounts/docs/OAuth2InstalledApp

您需要在Google控制台(https://code.google.com/apis/console)中创建一个已安装的应用程序,当您这样做时,您可以获取client_id并使用参数构建一个GET请求,如下所示:

https://accounts.google.com/o/oauth2/auth\?
scope\=<scope>\&
redirect_uri\=urn:ietf:wg:oauth:2.0:oob\&
response_type\=code\&
client_id\=<client_id fetched from google console>

您可以构建此网址并在浏览器中导航到该网址,允许访问该应用,谷歌会为您提供我认为可用于获取凭据的代码。您可以使用这些凭据获取访问令牌并对其进行刷新,此凭据是永久性的。在github上有一个很好的例子。请注意,您只需手动获取这些凭据一次,然后将这些凭据保存在某处并继续使用它们来获取/刷新令牌。

希望这有帮助!

答案 1 :(得分:5)

据我所知,不,OAuth 2.0的内容适用于Google帐户,Google会对其进行身份验证。