使用 Firebase 进行 Chrome 扩展程序身份验证

Posted

技术标签:

【中文标题】使用 Firebase 进行 Chrome 扩展程序身份验证【英文标题】:Use Firebase for Chrome Extension authentication 【发布时间】:2016-09-26 00:22:37 【问题描述】:

我正在开发一个 chrome 扩展程序,正要设置身份验证时,我看到他们在 the page 上放置了一条通知,说他们正在将身份验证迁移到 firebase:https://firebase.google.com/docs/web/setup#prerequisites

我正在尝试遵循他们对“网络设置”的建议,但我认为扩展程序不能相同,因为尝试将初始化代码放在我的 background.js 中我收到了错误:

拒绝加载脚本“https://www.gstatic.com/firebasejs/live/3.0/firebase.js”,因为它违反了以下内容安全策略指令:“script-src 'self' blob: filesystem: chrome-extension-resource:”。

是我把它加载到了错误的地方,还是只是有不同的扩展实现?

这是避免链接失效的代码:

// TODO: Replace with your project's customized code snippet
<script src="https://www.gstatic.com/firebasejs/3.0.2/firebase.js"></script>
<script>
// Initialize Firebase
var config = 
  apiKey: '<your-api-key>',
  authDomain: '<your-auth-domain>',
  databaseURL: '<your-database-url>',
  storageBucket: '<your-storage-bucket>'
;
firebase.initializeApp(config);

我用我自己的自定义代码 sn-p 替换它,并将嵌入的链接放在 background.html 中,并将 config/init 片段放在 background.js 中

【问题讨论】:

【参考方案1】:

您需要下载 firebase.js 并将其放入您的扩展程序中,然后使用相对 url 加载它。不允许您的扩展程序访问外部脚本。

【讨论】:

【参考方案2】:

将此添加到您的 manifest.json:

"content_security_policy":"script-src 'self' https://www.gstatic.com/ https://*.firebaseio.com https://www.googleapis.com; object-src 'self'"

这样您就不会违反您收到的错误中提到的内容安全政策。

【讨论】:

以上是关于使用 Firebase 进行 Chrome 扩展程序身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chrome 扩展 Manifest.json 中设置内容安全策略以使 Firebase 正常工作

在中国使用 Firebase 身份验证和 Firestore

background.html 与 background.js - chrome 扩展

资讯丨微软发布Chrome扩展Windows Defender

如何使用 WebStorm 进行 Chrome 扩展开发?

进阶|Chrome还不够神,但你写的扩展程序可以很神