firebase - 在firebase中删除用户不会触发onAuth方法

标签 firebase firebase-authentication

当通过登录和身份验证 firebase Web 界面的注册用户部分删除用户时,不会触发 onAuth 方法,并且用户仍保持登录状态并可以写入数据库。如何确保用户的 session 被销毁然后用户被删除?

最佳答案

安全规则。

当用户被删除时,他们不会立即取消身份验证。但是,您可以编写安全规则,以保护私有(private)数据免受不再存在的用户的侵害。

以下数据为例。

{
  "privateData": "only authenticated and existing users can read me!,
    "users": {
      "user1": "Alice",
      "user2": "Bob"
    }
  }
}

在这种情况下,我们只希望 /users 列表中的用户能够访问 /privateData 位置。一个简单的 auth != null 就可以工作,直到其中一个用户被删除。

{
   "rules": {
     "privateData": {
        ".read": "auth != null && auth.uid == root.child('users').child(auth.uid).exists()",
        ".write": "auth != null && auth.uid == root.child('users').child(auth.uid).exists()"
     }
   }
}

上述规则不仅检查经过身份验证的用户,还检查该用户是否存在于 /users 位置。

token 将过期,他们将无法再登录。但凭借强大的安全规则,您可以保证他们无法再访问任何数据。

关于firebase - 在firebase中删除用户不会触发onAuth方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784421/

相关文章:

Firebase 如何获取用户详细信息?

firebase - 如何在Flutter中使用.currentUser方法

ios - 访问钥匙串(keychain)时出错

java - 为什么我从 Firebase 得到 NULL 结果

firebase - 查询Firestore以检查字段值是否存在,并将Stream转换为Future?

reactjs - 验证 Material UI 文本字段提交

firebase - 在 firebase 中,我如何授予对多个子值的读取访问权限

android - 无论哪个用户登录,arrayList 总是从 Firebase 数据库加载用户信息?

java - 在列表中添加来自 firebase 的对象的问题

firebase - 通过仪表板删除用户,但用户仍然登录?