max*_*ner 6 javascript firebase-security firebase-authentication firebase-realtime-database
我有一个静态网站运行:
config =
apiKey: "HIDDEN"
authDomain: "HIDDEN"
databaseURL: "HIDDEN"
storageBucket: ""
firebase.initializeApp(config)
Run Code Online (Sandbox Code Playgroud)
在浏览器中(它编译为javacript)与Firebase的服务器进行身份验证.
我在这迷茫吗?这是从浏览器使用Firebase进行身份验证的有效方法吗?我从他们的"网络"教程中得到了代码,所以我觉得它是.
现在,我需要配置我的Firebase数据库规则,以便我和我只能读取和写入它.
我怎么能做到这一点?这个例子是否足够?
这是允许仅对经过身份验证的用户进行读/写的给定示例
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*len 11
它firebase.initializeApp(config)不会对您进行身份验证,它只是在Firebase服务器上标识您的项目.这相当于您必须知道您的家庭住址才能知道下班后去哪里.了解地址是先决条件,但仅限获取访问权限.
如果您希望将数据访问限制为"仅限于您",则表示您必须首先使用Firebase标识自己.这与Firebase身份验证有关.例如,要使用电子邮件+密码登录,您需要执行以下操作:
firebase.auth().signInWithEmailAndPassword(email, password)
Run Code Online (Sandbox Code Playgroud)
阅读完整步骤的电子邮件+密码验证文档.
经过身份验证后,您将获得一个唯一的ID; 一个所谓的uid.您可以uid在Firebase控制台的"身份验证"标签中找到您的身份.
通过此,uid您可以控制对数据(数据库和存储)的访问.因此,如果您uid从控制台复制并将其添加到安全规则中,则只有您(或知道您的电子邮件+密码的人)才能访问数据库:
{
"rules": {
".read": "auth.uid == 'e836f712-4914-41df-aa80-5ade6b8b7874'",
".write": "auth == 'e836f712-4914-41df-aa80-5ade6b8b7874'"
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我uid在此代码段中添加了自己的一个.就像知道您的API密钥或数据库URL不存在安全风险一样,我也不知道uid.user:209103在Stack Overflow上知道我是Frank van Puffelen 并不意味着你可以冒充我.
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |