javascript - 扩展中的 Firestore API 密钥
问题描述
我正在制作 Chrome 扩展程序。
该扩展程序创建一个与用户提供的 url 对应的唯一代码。
我将此 url 和 uID 写入我的 Firestore 数据库。
var url = document.getElementById("url").value;
var uID = randomID();
db.collection("links").doc(uID).set({
url: url
})
但是现在每个拥有我的 API 密钥(存储在普通 JS 文件中)的人都可以写入数据库,我需要扩展才能写入数据库。
有没有办法保护 Chrome 扩展的数据库?
解决方案
有几种方法可以保护您的数据库。首先,您应该使您的插件需要某种形式的 Firebase/Firestore 身份验证。
https://firebase.google.com/docs/auth/web/start
这将使您的插件用户无法匿名连接。然后,您可以将规则应用于您的 Firestore,以在需要时保护数据。
如果您使用 chrome 身份 API,您可能能够解除您用户的 Google ID。这似乎是一个展示该过程的可靠示例扩展。
https://github.com/firebase/quickstart-js/tree/master/auth/chromextension
在我们的工作中,我们使用了 Firebase 提供的自定义令牌功能,因此我们可以使用我们自己的身份提供者,如果您需要它,它也很有效。
坚持文档,他们确实解释得很好。
推荐阅读
- mysql - 如何检索由逗号分隔的字段中的 MAX 数和变量
- typescript - Cloud Functions-TypeScript-“对象可能是‘未定义’.ts(2532)”
- css - 手机标题图片太小
- dart - 如何将 scoped_model 与 Navigator 一起使用?
- c# - 在 Automapper 中更新目标属性
- javascript - php 代码运行时在屏幕上写字
- amazon-web-services - 与 AWS EC2 的 SSH 连接在连接或构建时冻结
- typescript - 无法获得通用的联合打字?
- r - 如何分别在csv文件中写入矩阵的每一行?
- java - getChildren() add() 和 add()