我正在尝试在Chrome扩展程序中实施Firebase登录(通过Facebook)。
我在background.js脚本中使用以下代码
var ref = new Firebase("https://DB.firebaseio.com");
ref.authWithOAuthPopup("facebook", function(error, authData) {
alert(error);
});
authData为null,显示的错误是“Firebase:用户取消了身份验证”。
使用电子邮件/密码登录似乎没有问题。
这里出了什么问题?
答案 0 :(得分:4)
Chrome浏览器可能不允许您从Chrome扩展程序启动弹出窗口,这是预期的。您看到的错误是由于弹出窗口过早关闭 - 在这种情况下,浏览器会强制执行,但与用户阻止的弹出窗口无法区分。
由于浏览器扩展程序没有" origin"的概念,即它们的内容不是来自外部域的服务器,因此它们不适合OAuth弹出和重定向流,因为身份验证应用无法验证访问权限域。
我建议您在真实的托管域中创建一个网页,以便与您的扩展程序一起使用,并在身份验证完成后与该扩展程序进行通信。