我正在制作一个 Chrome 扩展程序。
该扩展程序创建一个与用户提供的 url 相对应的唯一代码。
我将此 url 和 uID 写入我的 Firestore 数据库。
var url = document.getElementById("url").value;
var uID = randomID();
db.collection("links").doc(uID).set({
url: url
})
但是现在每个拥有我的 API key (存储在普通 JS 文件中)的人都可以写入数据库,而我需要扩展才能写入数据库。
有没有办法保护 Chrome 扩展程序的数据库?
最佳答案
有多种方法可以保护您的数据库。首先,您应该让您的插件需要某种形式的 Firebase/Firestore 身份验证。
https://firebase.google.com/docs/auth/web/start
这将使您的插件用户无法匿名连接。然后,您可以将规则应用于您的 Firestore,以在需要时保护数据。
如果您使用 chrome identity API,您或许可以提取用户的 Google ID。这似乎是一个展示该过程的可靠示例扩展。
https://github.com/firebase/quickstart-js/tree/master/auth/chromextension
在我们的工作中,我们利用了 Firebase 提供的自定义 token 功能,这样我们就可以使用我们自己的身份提供程序,如果您需要的话,它也非常有用。
坚持看文档,他们确实解释得很好。
关于javascript - 扩展中的 Firestore API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53722822/