我正在Angular 7项目中实施Google身份验证,但是当您使用google登录按钮时弹出窗口出现问题。
在常规的Chrome选项卡上,用户登录谷歌的弹出窗口会显示为空白的白色弹出窗口几秒钟,然后就会消失。
当我没有在浏览器上禁用安全性时,这似乎只发生在chrome上。它也不会发生在Safari中,所以我真的不明白出了什么问题。我为所有网站启用了chrome上的弹出窗口和cookie,但这并没有什么区别。
最后,我不确定这是否相关但是当我在普通的chrome选项卡上查看源html(启用安全性和所有内容)时,我得到了:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /login</pre>
</body>
</html>
我以前遇到过这个问题,我自己。它通常会按预期工作,但偶尔会显示一个空白的弹出窗口。您可以尝试使用重定向登录而不是弹出方法。 (据说它也是移动设备的首选方法):
import { auth as fbAuth } from 'firebase/app';
async googleLogin() {
const provider = new fbAuth.GoogleAuthProvider();
return await this.oAuthLogin(provider);
}
async oAuthLogin(provider) {
await fbAuth().signInWithRedirect(provider);
return await fbAuth().getRedirectResult(result => {
if (result.user != null) {
var user = result.user;
console.log(`Welcome back, ${user.displayName}!`);
}
})
.catch(error => console.error(error));
}