Когда пользователь удаляется через раздел Зарегистрированные пользователи веб-интерфейса Login & Auth firebase, метод onAuth не запускается, и пользователь остается в системе и может писать на база данных. Как можно гарантировать, что сеанс пользователя будет уничтожен, а затем удален пользователь?
Удаление пользователя в firebase не запускает метод onAuth
Ответы (1)
Правила безопасности.
Когда пользователь удаляется, его аутентификация не происходит немедленно. Однако вы можете написать свои правила безопасности таким образом, чтобы защитить личные данные от пользователей, которые больше не существуют.
Возьмем, к примеру, следующие данные.
{
"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
местоположении.
Срок действия токена истечет, и они больше не смогут войти в систему. Но с надежными правилами безопасности вы можете гарантировать, что у них больше нет доступа к каким-либо данным.