0

我在我的Google Chrome應用中使用了Firebase。由於Chrome應用沒有域名和回叫網址,因此我需要使用令牌進行授權,而不是彈出窗口。Firebase authWithOAuthToken無法正常工作

我有問題,即使在瀏覽器中,authWithOAuthToken也能正常工作。

在此代碼示例中,第一次調用authWithOAuthPopup的作品時,我得到了包含github帳戶信息和我的令牌的popupData。問題是第二次調用authWithOAuthToken不起作用。我得到一個錯誤

 db.authWithOAuthPopup("github", function(error, popupData) { 
     if (error) { 
      console.log("Login Failed!", error); 
     } else { 

      console.log("Authenticated successfully with payload: ", popupData); 
      console.log("Now attempting to Authorize with Token..."); 


      db.authWithOAuthToken("github", popupData.token, function (err, tokenData) { 
       if (err) { 
        console.log("Login Failed!", err); 
       } else { 
        console.log("Authenticated successfully", tokenData); 
       } 
      }); 
     } 
    }); 

我的控制檯輸出顯示的第一個電話的工作,第二個呼叫失敗:

bundle.js:20498 Authenticated successfully with payload: Object 
    Now attempting to Authorize with Token... 
    Login Failed! Error: Invalid authentication credentials provided.(…) 

我怎樣才能得到authWithOAuthToken工作?

+0

這沒有意義。爲什麼這將是必要的?看起來像[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378) – Kato

+0

該減少的測試用例成功執行authWithOAuthoPopup並從該回調。但是,如果我嘗試在authWithOAuthToken中使用該標記,則會出現錯誤。 我只需要authWithOAuthToken就可以工作,因爲我打算從Chrome應用進行該調用。但是,我從來沒有見過它的工作。即使在瀏覽器中,即使在我收到成功的令牌之後,我仍然無法正常工作......正如本例中所演示的那樣。 我希望這個錯誤可以用這個代碼重現...一個調用工作,第二個調用失敗。我怎樣才能使第二個認證通話工作呢? – Tabbyofjudah

+0

因此,您正在對Firebase API進行單元測試;第三方庫?或試圖從Facebook測試生成的令牌?兩者看起來都是多餘的測試。 – Kato

回答

0

您要傳入authWithOAuthToken()的令牌需要是GitHub OAuth令牌,而不是Firebase。因此,正確的標記將是popupData.github.accessToken而不是popupData.token。更多可以在token contents here上閱讀。