javascript - 从 chrome 扩展使用 authWithOAuthPopup 时出现 "the user cancelled authentication"

标签 javascript google-chrome-extension firebase

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

我在background.js脚本中使用以下代码

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

authData 为 null,出现的错误是“Firebase:用户取消了身份验证”。

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

这里出了什么问题?

最佳答案

Chrome 浏览器可能不允许您从 Chrome 扩展程序启动弹出窗口,这是预期的结果。您看到的错误是由于弹出窗口过早关闭所致 - 在本例中是浏览器强制执行的,但在其他方面与用户阻止的弹出窗口无法区分。

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

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

关于javascript - 从 chrome 扩展使用 authWithOAuthPopup 时出现 "the user cancelled authentication",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27336414/

相关文章:

php - 无法回显 Ajax 变量传递

javascript - AngularJS - 我的部分 Controller

javascript - Chrome 新标签页扩展从地址栏窃取焦点

javascript - 网址更改时扩展程序未加载

firebase - 在 firebase 控制台中按日期过滤 firestore 查询

firebase - 如何在Bigquery中查询此自定义事件数据?

javascript - 当与 pm2 集群时,Discord 机器人会多次响应

java - 网页中的 GPS 位置

google-chrome - chrome.tabs.executeScript 仅在开发者控制台打开时触发

javascript - firebase.storage() 不是 JavaScript 中的函数