google-cloud-firestore - 允许未注册用户查询 Firestore 以检查电子邮件是否已存在
问题描述
现在,在我的 Firestore 规则中,只有注册用户才能读/写我的项目。但是,我还想在我的注册过程中验证电子邮件是否已经存在,这意味着匿名用户也可以访问我的“用户”数据。
从安全的角度来看,我不确定这是如何合规的。我应该创建类似“电子邮件”集合并在此处复制所有电子邮件地址并允许匿名用户查询吗?
解决方案
是的,这确实是典型的方法。将您希望匿名访问的数据复制到一个单独的集合中,并在那里授予更广泛的访问限制。
在该电子邮件地址集合的规则中,您通常会使用允许阅读每个特定文档但不允许列出所有文档的细粒度规则。就像是:
match /emails/{email} {
// Applies to single document read requests
allow get: if <condition>;
// Applies to queries and collection read requests
allow list: if false;
}
这意味着一旦用户输入了特定的电子邮件地址,您就可以检查该电子邮件地址是否存在文档。但他们不能只从集合中获取所有文档来抓取您的用户群。
推荐阅读
- laravel - Laravel belongsTo 关系获取“非对象的属性”
- javascript - 如何通过 devtools(chrome、Edge 等)查看 JavaScript 使用的内存中的哪些变量?
- ruby - 从字符串列表中查找多个最长的公共前缀
- android - 当 Recyclerview 上的 Click 和 item 时,显示一个 Dialog 并获取用户输入并更新 recycler item 中的该值
- javascript - 为什么我会在 JSON.parse 错误时收到 Unexpected end of JSON input
- javascript - 如何在 Google 中制作组件变体 优化 Next js 中的 A/B 测试
- git - git 硬重置,但推送时图表上没有变化
- java - 有没有办法通过 scala-maven-plugin 使用旧版本的 Java
- r - 祖先状态重建,多分法和没有分支长度
- django - django 按非相关表中的汇总值排序