Firebase简单登录 - 防止新用户

时间:2014-06-05 14:52:02

标签: firebase firebase-security

我正在使用Firebase的简单登录电子邮件/密码身份验证功能。

我想通过Forge 来管理用户。我不希望通过客户端应用程序创建用户。

但是我仍然希望让他们登录/注销。

这可能吗?

1 个答案:

答案 0 :(得分:6)

您无法阻止使用简单登录在客户端上创建用户。您可以使用两种选择:

简单登录“帐户”实际上只是令牌

简单登录只是一个创建Firebase令牌的便利包装器。对于可以存储的帐户数量没有限制,它们对您的Firebase使用情况没有影响。考虑到这一点,您无需限制帐户创建。

相反,只需利用安全规则来控制对数据的访问。当管理员创建帐户时,让他们也在数据中添加配置文件。如果只允许Forge中的管理员创建配置文件,那么有人可以创建一个帐户,但这将是多余的,毫无意义,因为它只是给它们一个惰性令牌。

强制访问数据的安全规则:

".write": "root.child('valid_account/'+auth.uid).exists()"

一个安全规则,允许用户编辑他们的个人资料,但只有Forge(admin:true)来创建它们:

"profiles": {
  "$uid": {
    ".write": "data.exists() && auth.uid === $uid && newData.exists()"
  }
}

创建自己的令牌可以完全控制

如果您非常喜欢OCD并且不喜欢这种方法,那么您可以删除简单登录。如前所述,它只是代表您创建令牌。所以只需create your own

通过这种方式,您可以完全控制帐户创建和令牌生成。