Chrome 扩展程序中的 Firebase 身份验证弹出窗口
Firebase authentication in Chrome Extension popup
我正在尝试让身份验证(电子邮件/密码)在Chrome扩展程序中工作。如果我将身份验证代码放在后台脚本中,我似乎可以正常工作。但是,我似乎无法将其用作浏览器操作脚本。
我使用以下代码作为扩展的基础:https://github.com/firebase/firebase-chrome-extension
我browser_action.js改为:
Firebase.enableLogging(true);
var f = new Firebase('https://myapp.firebaseio.com/');
f.authWithPassword({
email : "a@b.cd",
password : "1234"
}, function(error, authData) {
if (error) {
alert("Login Failed!", error);
} else {
alert("Authenticated successfully with payload:", authData);
}
});
我保持现有browser_action.html不变:
<!doctype html>
<style type="text/css">
#mainPopup {
padding: 10px;
height: 200px;
width: 400px;
font-family: Helvetica, Ubuntu, Arial, sans-serif;
}
h1 {
font-size: 2em;
}
</style>
<div id="mainPopup">
<h1>Firebase test!</h1>
<p>Clicks: <span id="contents"></span></p>
</div>
<script type="text/javascript" src="https://cdn.firebase.com/v0/firebase.js"></script>
<script src="browser_action.js"></script>
当我加载扩展并单击图标时,它会在控制台中给出以下错误:
Uncaught TypeError: f.authWithPassword is not a function
如果我将 firebase 代码和身份验证代码移到后台.js文件,它会起作用,并提醒我它已成功通过身份验证。
我做错了什么,或者为什么这是不可能的?
该示例chrome扩展程序已经3年没有更新了,因此其Firebase版本已过时。 在browser_action.html
中将https://cdn.firebase.com/v0/firebase.js
替换为https://cdn.firebase.com/js/client/2.2.1/firebase.js
,您应该能够成功使用authWithPassword
。
对于自 2016 年 7 月以来遇到此问题的任何人,Firebase 提供了一组关于如何为 Chrome 扩展程序设置身份验证的更新说明(在他们的示例中,他们使用 Google 身份验证)。在遇到这篇文章之前,我跳过了一堆箍。希望能节省某人的时间。https://github.com/firebase/quickstart-js/tree/master/auth/chromextension
- Sencha Touch和远程服务器上的身份验证
- Javascript清除缓存以清除基本身份验证凭据
- REST的面向公众的身份验证机制
- 当需要身份验证时,ui路由器不会重定向
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- AJAX HTTP基本身份验证解决方案
- 身份验证后获取Facebook图片
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- Twitter应用程序专用身份验证
- 身份验证后如何关闭Facebook弹出窗口
- 如何在不打开新窗口的情况下在单页应用中执行 Dropbox 身份验证
- 如何使用 window.open 创建一个不确定延迟的弹出窗口(用于社交身份验证),而弹出窗口阻止程序会阻止它
- 谷歌身份验证在登录时不会显示弹出窗口
- NodeJS Passport - 如何打开一个新窗口进行身份验证
- iOS 8 在 OAuth 的 401 上显示基本身份验证的弹出窗口
- Chrome 扩展程序中的 Firebase 身份验证弹出窗口
- 在IE6上使用弹出窗口时,始终要求进行身份验证
- Gapi 的身份验证弹出窗口立即关闭,并失败并显示 401 错误
- Angular中的身份验证:处理新的选项卡或新的浏览器窗口
- Facebook同一窗口身份验证