oauth2.0 错误400:redirect_uri_mismatch with Firebase Auth - GoogleAuthProvider from firebase hosted website

piv4azn7  于 2023-08-02  发布在  Go
关注(0)|答案(1)|浏览(220)

我一直在YouTube上观看有关使用Firebase auth登录Google弹出页面的视频,但没有一个人去或使用Google Cloud并设置OAuth 2.0客户端ID。当运行这段代码时,我从谷歌得到了一个弹出窗口,但是它抛出了一个HTML 400错误,并且它返回的错误状态是:
.

您无法登录此应用,因为它不符合Google的OAuth 2.0策略。
如果您是应用开发人员,请在Google Cloud Console中注册重定向URI。请求详情:
redirect_uri=https://www.{mywebsite}.com/__/auth/handler

.
我试着去谷歌云和开发者页面,并设置了一个OAuth 2.0客户端ID,老实说,我不明白它出了什么问题

import { initializeApp } from 'firebase/app';

const firebaseConfig = {
    //Private Firebase Config
  };

initializeApp(firebaseConfig);

import { 
    getAuth, signInWithPopup, GoogleAuthProvider, onAuthStateChanged, signInWithEmailAndPassword,
    signOut
 } from "firebase/auth";

const auth = getAuth(); 

const GoogleProvider = new GoogleAuthProvider(firebaseConfig);

GoogleProvider.addScope('https://www.googleapis.com/auth/userinfo.email');
GoogleProvider.addScope('https://www.googleapis.com/auth/userinfo.profile');

字符串

  • --SignInWithEmailCodeHere--*

Firebase Web Api 9.22.2 New Modular Login Page

const SignInWithGoogle = document.querySelector('.signinWithGoogle')
SignInWithGoogle.addEventListener('submit', (e) => {
    e.preventDefault()

signInWithPopup(auth, GoogleProvider)
.then((result) => {
  const user = result.user;

  alert('signed in user! User: ', user.user)
})
.catch((error) => {

  const errorCode = error.code;
  const errorMessage = error.message;

  alert(errorMessage + " " + errorCode + " : Error Signing In")

  const credential = GoogleAuthProvider.credentialFromError(error);

  alert(credential.error + " : Error Signing In")
});
})

oalqel3c

oalqel3c1#

找到解决方案了!
问题是当我设置firebase项目时,我使用了不同的域,它默认为firebase默认项目域“{projectname}.firebase.com”。我试着创建一个新帐户,不知道FireBase会自动为您生成一个服务帐户。此Firebase云帐户可以通过转到

项目概述(左上)>项目设置>服务账号>管理服务账号权限(右上)。

这将带您到与您的firebase web项目相关联的google cloud页面,您将单击google cloud developer页面左上角的3行并转到

API's & Services>credentials(左手竖条)

在这里,您应该看到Google生成的OAuth2.0设置。有了这些你可以更新他们从

"{projectname}.firebase.com”“https://www.{yourdomain}.com”

和重定向链接

"{projectname}.firebase.com/__/auth/handler”

到**“https://www.{yourdomain}.com/__/auth/handler”**

相关问题