标签:firebase-security javascript firebase firebase-realtime-database
我一直在用户数据保存在参考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"
}
}
}
}
}
标签:firebase-security,javascript,firebase,firebase-realtime-database 来源: https://codeday.me/bug/20190828/1756269.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。