2012-06-16 54 views
1

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

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

总之:

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

有任何建议,如何使用谷歌的OAuth 2.0来自于大量的服务器上运行分配 Web应用程序?谢谢。

回答

1

您确定无法访问窗口标题吗?如果你的应用程序正在打开窗口,它应该能够访问它。应该可以以类似的方式在移动应用程序中完成此操作。

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

相关问题