适用于可分发Web应用程序的OAuth 2.0

时间:2012-06-16 12:14:35

标签: api oauth web

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

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

总结:

  1. 无法使用网络应用程序的方法,因为我不知道我们的应用程序将来运行的所有网址。
  2. 无法使用已安装应用程序的方法,因为我们的JavaScript代码无法访问窗口标题。
  3. 是否有任何建议,如何在大量服务器上运行的可分发 Web应用程序中使用Google的OAuth 2.0?谢谢。

1 个答案:

答案 0 :(得分:1)

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

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