2015-12-22 33 views
1

我想在Chrome擴展中使用Imgur API。用戶輸入的身份驗證響應會發送到imgur網頁上我的應用程序配置文件中設置的「重定向URL」。我可以在Chrome擴展中爲oauth2回調設置什麼重定向URL?

如何設置「重定向url」指向用戶的Chrome瀏覽器擴展?

我看到的只是建立一個微小的服務器來跟蹤我的用戶令牌的重液:

  1. 我的分機檢查的imgur令牌:如果找到了,開始擴展流程,否則到步驟2.
  2. 我的擴展程序詢問imgur api的驗證表單。
  3. 用戶填寫表單,該表單是自我管理的,表單將其用戶名/密碼發送回imgur服務器。
  4. Imgur服務器向指定的'redirect-url'發送包含令牌的查詢請求。
  5. 此「重定向網址」是我的服務器網址,它檢索令牌。
  6. [不知道該怎麼做這一步]服務器和分機交換機和擴展至少檢索到珍貴的令牌。
  7. 使用該令牌,擴展名至少可以顯示imgur圖片。

他們的文檔提到localhost作爲可能的url重定向。我正在挖掘這個大方向,但它對我來說沒有意義:似乎更像是開發人員的本地測試,而不是我正在尋找的答案。

感謝您的任何意見。

回答

0

我結束了在雲中部署一個小型python服務器。

+0

這是如何幫助? –

+0

如果您仔細閱讀了我的文章,我通過7個步驟描述了我當時如何設想一個解決方案,以提供api.imgur的URL以回叫。特別是,在第5步中,「此'重定向網址'是我的服務器網址,它檢索令牌。」我做到了。另外,我從來沒有設法使用擴展來直接接收Sid想法的回調。如果您需要更詳細地描述整個過程,我會很樂意與社區分享。總而言之,它完美地回答了我的問題:什麼URL ......?所以它有幫助。我的擴展(使用它的服務器)運行良好,我很喜歡它;) – Poutrathor

1

在大多數情況下,令牌會附加到重定向url。因此,您可以使用chrome.tabs.onUpdated.addListener()來收聽標籤更新,並檢查標籤網址是否包含"access_token="。現在它會聽每個標籤。如果您自己創建身份驗證選項卡,您將在其回調中獲得一個ID。使用此ID您可以在chrome.tabs.onUpdated.addListener()回撥中檢查它與您創建的標籤相同,或者如果標籤網址與重定向網址匹配,您可以匹配。兩者都可以工作。

示例代碼:

 chrome.tabs.onUpdated.addListener(function authorizationHook(tabId, changeInfo, tab) { 
       if (tabId === authenticationTabId && tab.title.indexOf(redirectUrl) >= 0) { 
        //If you don't have the authentication tab id remove that part 
          if(tab.title.indexOf("access_token=") >=0){//tab url consists of access_token 
          var url = tab.title; 
          /* 
           Code to extract token from url 
          */ 
          chrome.tabs.onUpdated.removeListener(authorizationHook);   
          }     
       } 
     }); 

你也將需要"tabs"權限爲它工作

編輯:您還可以使用chrome.identity.launchWebAuthFlow()。你將不得不使用:

JavaScript來源:https://<extensionid>.chromiumapp.org

重定向URL:https://<extensionid>.chromiumapp.org/provider_cb

這裏是github-auth應用程序,它使用chrome.identity.launchWebAuthFlow()的一個很好的例子。相同的代碼可以用於擴展。

+0

好的,我會嘗試。我正要嘗試實現一個python服務器。 – Poutrathor

+0

編輯:等待,第一次將回調重定向到我的標籤?應該建立什麼樣的價值來重定向Url? – Poutrathor

+0

我回答了你在問題中提出的問題。你需要提供更多的細節,如你使用彈出或選項卡。你在你的問題中提到,重定向uri是你的web服務器,所以使用它。 – Sid

相關問題