【问题标题】:How to disable a user from firebase?如何从firebase禁用用户?
【发布时间】:2020-06-02 22:14:09
【问题描述】:

在 Firebase API 中

https://firebase.google.com/docs/auth/web/manage-users

我们可以删除用户,但是我们如何防止用户再次注册,在 Firebase 的 GUI 中我们可以选择禁用用户,我们如何在程序中执行此操作,例如,如果我们正在构建一个管理面板用于检查已报告的列表网站的帖子,并且我们希望禁用创建者或报告者发送垃圾邮件作为可用操作的一部分。

谢谢。

如果这改变了答案,我会做出反应。

【问题讨论】:

    标签: javascript node.js reactjs express firebase-authentication


    【解决方案1】:

    好吧,他们总是可以使用完全不同的凭据再次注册(如果网站是公开的/不是仅限邀请的)。

    您可以对新数据和现有被阻止用户进行匹配,如果匹配超过阈值,则标记它们。

    而且您可以改进报告,越快检测到应该被阻止的用户越好。

    【讨论】:

    • 是的,但不允许使用相同的电子邮件,我们也可以将用户设置为必须经过验证的电子邮件,这样对他们来说很难,它也会发送一个清晰的信息,99% 都可以人...
    【解决方案2】:

    不能说我对 Firebase 非常熟悉,但我会尽力提供帮助(不会受到伤害)。

    您是否尝试将相关用户的 IP 列入黑名单?

    希望我能帮上忙 :)

    祝你有美好的一天!

    【讨论】:

    • 这真的很有趣,你有任何测试过的方法吗?我从来没有这样做过。
    • Firebase Auth 没有 IP 黑名单。
    【解决方案3】:

    为防止用户重新注册,您应该禁用帐户而不是删除它。这将阻止用户再次登录并刷新他们的 ID 令牌。如果您想以编程方式执行此操作,请查看带有 Admin SDK 的 updating a user。例如,在 Node.js 中是:

    admin.auth().updateUser(uid, { disabled: true })
    

    但请记住,即使在禁用帐户后,他们现有的 ID 令牌仍将保持有效,直到过期(通常在一小时内),并且无法撤销。如果您想阻止他们同时发布,您将希望在某处保留列入黑名单/阻止的 UID 列表,并在允许他们写入/访问数据之前检查该列表。

    【讨论】:

    • 是的,但在文档中我只能找到删除用户的方法,禁用的唯一方法是从 Firebase 控制台上的 GUI,如何在代码中访问该选项是我当前的问题
    • 我可以在 react 前端这样做吗?它正在使用节点,这会是一个问题吗?因为我已经在前端拥有了所有的 firebase 逻辑(express 写在节点上)
    • 不。您不能从客户端代码禁用帐户。那将是一个巨大的滥用媒介。如果您想从客户端调用它,则必须围绕 Admin SDK 创建一个包装器,然后在自定义端点中公开它(在您控制的服务器上,或通过 Cloud Functions)。不过,请务必检查调用者是否有权禁用该代码中的帐户,否则您可能会被滥用。
    • 我正在考虑设置一个post route并调用admin功能,调用者的email必须是我的email,所以没有其他人可以成功调用该post请求。
    【解决方案4】:

    您将无法通过应用程序的前端以编程方式禁用用户。您将需要一个后端,并使用 Firebase Admin SDK 来update the user account to become disabled。 API 是updateUser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2019-04-04
      • 2021-08-17
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      相关资源
      最近更新 更多