7

你好善良的互联网人。

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

A.) 这种类型的 OAuth 流程可以在 Google OAuth2 Playground 上进行测试吗?

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

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

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

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

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

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

任何帮助或建议将不胜感激。

提前致谢

4

2 回答 2

11

亲爱的互联网人,

确实,Google 不支持资源所有者密码凭据流,但 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>

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

希望这可以帮助!

于 2013-12-20T02:56:32.530 回答
7

据我所知,没有。OAuth 2.0 的东西是针对谷歌账户的,谷歌对其进行身份验证。

于 2013-09-05T20:01:15.613 回答