繁体   English   中英

如何在 Firebase 安全规则中验证电子邮件地址

[英]How to validate the email address in Firebase ssecurity rules

我一直在参考 ID 下保存用户数据,以及一些包含电子邮件地址的用户信息。 我想让数据可用,但要防止人们猜测 ID 并查看其背后是否有信息。

如果他们向我提供 ID 和他们注册的电子邮件地址,我只想提供数据。

所以我将这些数据存储在 Firebase 中:

{ "data" : {
   "ms12345678" : { 
       "name" : "John Doe",
       "age"  : 40,
       "email" : "johndoe@domain.com"
    }
}

所以做var ref = firebase.database().ref("data/ms12345678")应该失败,除非我也提供johndoe@domain.com

我不确定我应该在这里采取什么方法。 我不希望用户进行身份验证,而是为他们提供链接。

您可以验证帐户电子邮件地址是否与该值匹配:

{
  "rules": {
    "data": {
      "$uid": {
        ".read": "auth.token.email === data.child('email').val()"
      }
    }
  }
}

有关可用属性的列表,请参阅auth.token文档

或者,您可以要求用户知道电子邮件地址。 为此,请将电子邮件地址嵌入到用户的路径中:

{ "data" : {
   "ms12345678" : { 
      "johndoe@domain,com": {
         "name" : "John Doe",
         "age"  : 40,
         "email" : "johndoe@domain.com"
      }
   }
}

有了这个,您可以将读取访问权限限制为知道完整路径的人:

{
  "rules": {
    "data": {
      "$uid": {
        "$email: {
          ".read": "auth.uid === $uid"
        }
      }
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM