0

我之前已经设置并遵循了这些步骤,并让它工作: https ://firebaseopensource.com/projects/firebase/quickstart-js/auth/chromextension/readme/#license

但是克隆这个扩展,但使用不同的Extension ID、不同的firebase instanceOAuth/key设置,我尝试至少 3 次单独执行这些步骤,但每次在最后一步失败时,登录(虽然同意屏幕有效)

  • 上传一个新的虚拟扩展(keymanifest.json 中没有字段)(但它与工作的代码完全相同)
  • 得到Chrome Extension ID, 和Public Key, 没问题
  • OAuth Client ID使用已配置的同意屏幕创建Extension ID,没问题,屏幕显示,我可以点击通过
  • 添加OAuth&Public Keymanifest.json
  • 再做一个OAuth Client ID?(我认为这是一个重复的步骤,因为Client ID我应该使用哪个?并且 afaik 白名单是可选的)
  • 用于chrome.identity获取 OAuth 令牌:
export function startAuth(interactive) { 
  // Request an OAuth token from the Chrome Identity API.
  chrome.identity
    .getAuthToken({ interactive: !!interactive }, (token) => {
      if (chrome.runtime && !interactive) { 
        console.error('It was not possible to get a token programmatically.');
      }

      else if (token) {
        // Authorize Firebase with the OAuth Access Token.
        const credential = firebase.auth.GoogleAuthProvider
          .credential(null, token);

        firebase.auth()
          .signInWithCredential(credential)
          .catch((error) => {
            // The OAuth token might have been invalidated. Lets' remove it from cache.
            if (error.code === 'auth/invalid-credential') {

              chrome.identity
                .removeCachedAuthToken({ token }, () => {
                  startAuth(interactive);
                });
            }
          });
      }

      else {
        console.error('The OAuth Token was null');
      }
    });
}

注意:此代码与另一个 extensionID/OAuth/key 一起使用,因此代码本身不会是问题。

它们之间没有太大的变化,实际上是 ExtensionID、OAuth 客户端 ID url 和公钥。

我已经按照这些步骤进行了 3 次,但每次我收到错误时都无济于事auth/invalid-credential。我确实得到了一个token,但该令牌不会进行身份验证。如何找出这是为什么?

它试图发布到这个地址,并返回错误400

POST:  https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=xxxxx

错误:INVALID_IDP_RESPONSE : Invalid Idp Response: access_token audience is not for this project

我的结论

即使使用不同的凭据,如何设置也必须有所改变

4

1 回答 1

0

问题是我没有在谷歌云控制台的同一个项目中创建 OAuth ,作为firebase 项目......

于 2022-01-19T12:42:07.240 回答