4

我正在尝试使用 firebase 安全性和身份验证配置,并注意到 Simple Login Web 教程。我可以通过运行auth.createUser()javascript 控制台来创建用户,但想知道我是否可以限制用户创建在服务器端完成。

我尝试添加主机Authorized Request Origins并尝试删除 localhost 和 127.0.0.1 (没有成功),但仍然能够从客户端创建用户。

理想情况下,我希望用户只能从客户端进行身份验证。我错过了什么吗?(假设这可以在不退回到 fb、twitter 等集成的情况下完成)

谢谢

4

1 回答 1

3

简单登录旨在完全无需服务器即可工作。如果您想阻止客户创建帐户,则需要使用自定义登录并自己滚动。

但是,在大多数情况下,您可能不需要阻止在简单登录中创建帐户。您可以通过简单地阻止用户在 Firebase 中创建用户记录来实现相同的结果,并以此为基础制定您的安全规则

例如,当在服务器上创建一个新用户帐户时,我可以将用户配置文件创建为:

/user/$user_id/...

我可以允许用户使用以下规则写入自己的个人资料,但不能创建个人资料:

".write": "data.exists() && auth.uid === $user_id"

然后,为了控制对服务器上任何路径的访问,我可以编写如下规则:

".read": "root.child('user/'+auth.uid).exists()"

由于最初只有服务器可以创建配置文件,因此有效地阻止了用户创建帐户。

于 2013-08-27T15:05:47.150 回答