使用 OAuth,ClientID 和 redirect_url 有很强的联系:您需要为每个 redirect_url 设置一个单独的 ClientID。对于在多个域中具有多个部署的本地应用程序来说,这是一个问题。
有什么方法可以实现来自未知域的 OAuth 身份验证?我能想出的唯一替代方案需要在固定域中使用专用的“身份验证服务器”,该服务器可以用作 redirect_url,然后可以执行新的、不受限制的重定向到客户域。
桌面应用程序通过提供一个虚拟的 redirect_url 来解决这个问题,然后将实时身份验证窗口托管在一个专用的 Web 框架中,让它们可以监听重定向请求。这允许他们从重定向 URL 读取授权代码,即使 URL 本身无效。我相信由于跨域限制,这在网络浏览器中是不可能的。
基本上需要 OAuth 来支持本地 Web 应用程序中的 SkyDrive 发布。