我们是具有 Web 应用程序的 ISV。与 StackExchange 或 Trello 不同,此 Web 应用程序安装在客户站点上,因此每个 Web 应用程序安装都有一个单独的 URL。即:http ://app.example.com/和http://app.microsoft.com/都可以是我们应用程序的有效 URL。
我们想使用 OAuth 访问用户的 Google 数据(一个简单的首次使用导入来启动应用程序数据库)。我们的问题是试图弄清楚如何使这项工作。
Web 应用程序(客户端)的 OAuth 依赖于在授权机构(在我们的例子中是 Google)注册的重定向 URL。如果您是 Trello 或 StackExchange,您只有一个 URL,然后将其放入。由于我们安装在很多地方,我们可以有很多 URL,我们不知道它们是什么,所以我们不能告诉 Google 哪些 URL提前使用。
客户端应用程序(Windows 客户端等)的 OAuth 通过在窗口标题中返回响应而不是重定向来解决此问题。这对于完全控制浏览器的应用程序来说非常有用——即控制沙箱,但对于普通浏览器来说,跨站点安全限制使得从谷歌响应窗口获取秘密是不可能的。
在 OAuth 世界中,我们似乎陷入了两种困境。不是 Web 应用程序,也不是客户端应用程序。
我们如何将 OAuth 与安装在多个位置的多个 Web 应用程序一起使用?