如何禁用注销具有 firebase 功能的用户?

How do I disable an logout a user with firebase function?

大家好,我正在尝试弄清楚如何正确禁用和注销用户。

经过研究,我发现我们通过这种方式禁用了用户。

   const user = await admin.auth().updateUser(userUid, {
      disabled: true,
    });

但我的问题是,如果用户仍在应用程序中登录怎么办?我试过了,没有任何反应,用户在禁用他后仍然可以使用该应用程序。那么我们能做些什么呢?我正在考虑使用 firebase 函数注销用户。我的应用程序是用 flutter 编写的,后端是 firebase。

成为 Firebase 的 signed-in 是基于 ID 令牌。默认情况下,此类令牌从铸造之日起一小时内有效,并且令牌本身在此期间不能失效。

用户将保持身份验证状态(最多一个小时),直到需要刷新其 ID 令牌。届时他们将被注销并且无法再次登录。

如果您想在 ID 令牌刷新之前阻止他们的访问,您将需要通过一些其他机制来实现,例如通过保留禁用的 UID 列表并对其进行检查。

我建议查看 managing user sessions, specifically the section on detecting ID token revocation 上的 Firebase 文档。

之前已经讨论过这个主题,所以我建议查看: