Firebase简单登录 - 防止新用户

Gre*_*reg 4 firebase firebase-security

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

我想通过锻造来管理用户.我不希望通过客户端应用程序创建用户.

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

这可能吗?

Kat*_*ato 6

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

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

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

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

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

".write": "root.child('valid_account/'+auth.uid).exists()"
Run Code Online (Sandbox Code Playgroud)

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

"profiles": {
  "$uid": {
    ".write": "data.exists() && auth.uid === $uid && newData.exists()"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

如果你非常强迫OCD并且不喜欢这种方法,那么你可以减少简单登录.如前所述,它只是代表您创建令牌.所以只需创建自己的.

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