2012-06-16 94 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客戶端。

相關問題