【问题标题】:Revoke Firebase authentication and sign out when user is deleted删除用户时撤销 Firebase 身份验证并退出
【发布时间】:2021-03-23 11:59:32
【问题描述】:

我一直在网上查找,但尚未找到在 Firebase 管理控制台上删除帐户时退出用户的方法。

当用户通过管理控制台删除帐户时,有没有办法设置云功能或某种方式退出用户。

【问题讨论】:

标签: google-cloud-firestore firebase-authentication admin


【解决方案1】:

如果从管理员中删除帐户,则用户的刷新令牌会自动撤销,因此后端无需再做任何事情。在前端,用户的 ID 令牌将一直有效,直到它自然到期,因此您需要一种方法来通知客户端他们的令牌已被撤销。

一种简单的方法是将用户的状态存储在实时数据库中,然后订阅任何更改并在该值更改时注销用户。

假设您的数据库如下所示:

{
  "users": {
    "userId123": {
      "status": "active"
    }
  }
}

在您的前端代码中,客户端在页面加载时订阅/users/userId123,当status 值发生变化时,执行一个操作。

例如:

firebase.database.ref('/users/userId123/status').onWrite((change, context) => {
  if (!change.after.exists()) {
    callSignOut();
    return null;
  }

  const val = change.after.val();

  if (val !== 'active') {
    callSignOut();
    return null;
  }
});

完全未经测试,但应该可以帮助您入门。

【讨论】:

    猜你喜欢
    • 2013-10-23
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多