“用户取消了身份验证”时,从Chrome扩展程序使用AuthWithOAuthPopup

"the user cancelled authentication" when using authWithOAuthPopup from a chrome extension

本文关键字:扩展 Chrome 程序 AuthWithOAuthPopup 取消 用户 身份验证      更新时间:2023-09-26

我正在尝试在Chrome扩展程序中实现Firebase登录(通过Facebook)。

我在后台使用以下代码.js脚本

var ref = new Firebase("https://DB.firebaseio.com");    
ref.authWithOAuthPopup("facebook", function(error, authData) {  
    alert(error);
});

authData 为空,显示的错误为"Firebase:用户取消了身份验证"。

使用电子邮件/密码登录似乎没有问题。

这里出了什么问题?

Chrome 浏览器可能不允许您从 Chrome 扩展程序启动弹出窗口,这是意料之中的。您看到的错误是由于弹出窗口过早关闭 - 在这种情况下,浏览器强制执行,但在其他方面与用户阻止的弹出窗口无法区分。

由于浏览器扩展没有任何"源"的概念,即它们的内容不是来自外部域的服务器,因此它们不适合 OAuth 弹出窗口和重定向流,因为身份验证应用程序无法验证访问域。

我建议在真实的托管域上创建一个网页,以配合您的扩展,并在身份验证完成后与扩展进行通信。