gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:43 25 4
gpt4 key购买 nike

我一直在引用 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()"
}
}
}
}

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

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

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

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

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

关于javascript - 如何验证 Firebase 安全规则中的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39405047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com