使用OAuth时,ClientID和redirect_url有很强的联系:每个redirect_url需要单独的ClientID。这对于部署在多个域中的本地应用程序是一个问题。
是否有办法从未知域实现OAuth认证?我能想到的唯一替代方法是需要在一个固定的域上使用专用的“认证服务器”作为redirect_url,然后可以执行新的、不受限制的重定向到客户域。
桌面应用程序通过提供虚假的redirect_url并在专用的web框架中托管实时认证窗口来解决此问题,使它们能够侦听重定向请求。即使URL本身无效,这也允许它们从重定向URL中读取授权代码。我认为这在Web浏览器中由于跨域限制是不可能的。
基本上,在本地Web应用程序中支持SkyDrive发布需要使用OAuth。