Firebase authWithOAuthToken 不工作

Firebase authWithOAuthToken not working

我在 Google Chrome 应用程序中使用 Firebase。由于 Chrome 应用程序没有域和回调 url,我需要使用令牌而不是弹出窗口进行授权。

我在使 authWithOAuthToken 工作时遇到问题,即使在浏览器中也是如此。

在此代码示例中,对 authWithOAuthPopup 的第一次调用有效,我得到了包含 github 帐户信息和我的令牌的弹出数据。问题是对 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 工作?

您要传递给 authWithOAuthToken() 的令牌需要是 GitHub OAuth 令牌,而不是 Firebase 令牌。因此正确的标记应该是 popupData.github.accessToken 而不是 popupData.token。可以在 token contents here.

上阅读更多内容