如何远程强制注销firebase auth用户

Ash*_*nto 11 firebase firebase-authentication firebase-admin

我有一个项目,它使用firebase auth和firebaseUI来验证用户.我启用了Google,Facebook和电子邮件提供商.我需要的是远程注销或禁用某些用户.

我希望用户在这样做时从应用程序注销.我尝试在firebase控制台中禁用该用户,并使用firebase管理SDK(https://firebase.google.com/docs/auth/admin/manage-sessions)撤消刷新令牌.

我等了2天以上,仍然注意到用户已登录并可以访问firestore数据.

我也经历了尝试 Firebase在删除后仍然检索authData

谁能指出我做错了什么?

Fra*_*len 5

您也不能远程强制用户注销。任何注销都必须在用户已登录的设备上进行。

一旦铸造了访问令牌,就无法撤消它。这意味着,即使您禁用了该用户的帐户,他们也可能继续拥有长达一个小时的访问权限。

如果时间太长,诀窍(正如我在您对链接的问题的回答中所提到的)是维护数据库(或其他位置)中被阻止用户的列表,然后在安全规则(或其他授权层)中进行检查)。

例如,在实时数据库中,您可以创建被阻止用户的UID的列表:

banned_uids
  uid1: true
  uid2: true
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令在您的安全规则中进行检查:

".read": "auth.uid !== null && !root.child('banned_uids').child(auth.uid).exists()"
Run Code Online (Sandbox Code Playgroud)


Mik*_*era 5

您可以使用FCM发送消息数据以强制注销。

例如,如果用户使用android应用程序。

  1. 将FCM令牌保存在Firebase Realtime中的集合中。
  2. 在服务中配置Android客户端应用。链接收到带有特殊字符串的消息时,您必须进行强制注销。
  3. 在云功能中创建所需的触发器,以在需要用户注销时发送数据LINK

成功!