1

我试图弄清楚如何使用 OAuth 2.0 从我的网络应用程序访问 Google API。问题是,该协议要求开发人员注册redirect_uri(接收访问令牌的页面的URL)。但是我的应用程序可以分发给许多客户,并且可以托管在无数的服务器上。没有办法事先知道redirect_uri 。

谷歌为已安装的应用程序提供了另一种选择,但我也不能使用这个变体。身份验证服务器在窗口标题中返回访问代码,并且无法从我们页面的 javascript 访问此信息(JS 无法访问使用 window.open() 打开的窗口的内容;如果该内容来自不同的服务器)。

总结:

  1. 无法对 Web 应用程序使用方法,因为我不知道我们的应用程序将来会在哪里运行的所有 URL。
  2. 无法对已安装的应用程序使用方法,因为无法从我们的 JavaScript 代码访问窗口标题。

有什么建议,如何从运行在许多服务器上的可分发Web 应用程序中使用 Google 的 OAuth 2.0?谢谢你。

4

1 回答 1

1

您确定无法访问窗口标题吗?如果您的应用程序正在打开窗口,它应该能够访问它。应该可以像在移动应用程序中那样做。

如果所有尝试都失败,您可以设置一个代理服务器(具有已知的重定向 URI)并将 Google 令牌分发给您的所有客户端。或者更好的是,每个应用程序都可以有自己的代理服务器——下载它的服务器。但是,如果每个 OAuth 客户端只能有一个重定向 URI,则每个应用程序都必须是一个单独的 OAuth 客户端。

于 2012-06-16T21:53:59.890 回答