【问题标题】:Firebase allows creation of users via the JS SDK without being authenticatedFirebase 允许通过 JS SDK 创建用户而无需经过身份验证
【发布时间】:2021-01-03 23:55:33
【问题描述】:

我发现可以使用 JS SDK 在 Firebase 中创建一个新用户,而无需使用 createUserWithEmailAndPassword 方法登录任何用户。对于消费者应用程序,我可以想象这是一个很棒的功能,因此“新客户”可以创建一个帐户。 但是,对于 b2b 世界来说,这并不是一个很棒的功能,就我而言,我们实际上并不想禁用它。

Firebase 或 GCP 中是否有任何可能的配置不允许世界上任何随机的人在我的环境中创建帐户?

谢谢!

【问题讨论】:

    标签: javascript firebase google-cloud-platform firebase-authentication


    【解决方案1】:

    如果您想完全禁止创建新帐户,那么您可能根本不想要正常的 Firebase 身份验证标准电子邮件/密码身份验证(它无法禁用最终用户创建的新帐户) .您可能想使用custom authentication,并精确控制如何使用您自己的后端进行注册。当然,您可以控制在您自己的后端发生的一切。缺点是您必须控制后端的所有内容!

    【讨论】:

    • 感谢您的快速回答。正如我所料,我们将研究自定义身份验证。
    • 另一种选择是通过 http 限制在 GCP 中保护公开的 apiKey 来保护它?
    • Firebase API 密钥并不是真正的私人信息。 stackoverflow.com/questions/37482366/…
    【解决方案2】:

    您不能禁用帐户创建,但您可以让您的系统仅使用您使用custom claims 创建的帐户。您可以创建云功能以向您的帐户添加特定声明,然后删除该功能。现在,有了像

    这样的安全规则
    allow read, write: if request.auth.token.yourClaim == true;
    

    实际上,没有声明创建的任何帐户都无法在您的系统中执行任何操作。我认为这比实现自己的身份验证方案更容易

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 2019-11-18
      • 1970-01-01
      • 2017-07-08
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多