如何在firebase电子邮件/通过身份验证中仅允许通过nodejs后端进行注册?

时间:2021-07-14 21:40:56

标签: node.js firebase firebase-authentication

我让用户填写包含一些额外信息的表单。因此,每当填写表单时,我的后端都会使用 firebase-admin 包的 CreateUser() 函数,然后将一些条目添加到实时数据库< /strong> 基于用户条目。

现在,我允许用户使用前端 firebase 客户端登录。我担心的是,由于我在前端公开了我的 firebase 配置,用户是否可以不修改脚本并在前端手动使用 CreateUserWithEmailAndPassword() 并将条目添加到我的 Firebase 身份验证。这样,他们就可以跳过我在实时数据库中添加的那些额外条目。

Is there a way by which I can add any rules to the firebase authentication which allows sign up only via the **service accounts json** and not the frontend client?

目的:允许用户使用后端注册并向实时数据库添加一些条目。 允许用户登录但从后端提供自定义用户令牌。 我本可以使用 mongoDB 进行手动身份验证,但我使用的是 firebase,以便我能够使用其密码重置、电子邮件验证等。

1 个答案:

答案 0 :(得分:1)

遗憾的是,无法在 Firebase 身份验证中启用登录,但禁用注册。

我能想到的最佳解决方法是在您从后端创建用户配置文件时将其 inject a custom claim 放入您的用户配置文件中,然后在您的客户端代码、服务器端检查该声明是否存在代码和安全规则。由于不可能从客户端 SDK 注入此类声明,因此您可以放心,客户端创建的帐户不会有声明。