我一直在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")
});
})
型
1条答案
按热度按时间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”**