Пользователь, выполнивший вход в ваше приложение, имеет идентификационный токен, действительный в течение часа.После того, как этот токен был создан, его нельзя отозвать.
Типичный способ обработки вашего сценария использования - также пометить пользователя в базе данных на стороне сервера после того, как вы отключите его учетную запись, а затемпроверяйте этот флаг в любых операциях.
Например, если вы используете базу данных Firebase Realtime и отключаете пользователя с помощью Node.js, код, который также помечает пользователя в базе данных, может выглядеть следующим образом:
// Disable the user in Firebase Authentication to prevent them from signing in or refreshing their token
admin.auth().updateUser(uid, {
disabled: true
}).then(function() {
// Flag the user as disabled in the database, so that we can prevent their reads/writes
firebase.database().ref("blacklist").child(uid).set(true);
});
И затем вы можете проверить это в правилах безопасности на стороне сервера следующим образом:
{
"rules": {
".read": "auth.uid !== null && !root.child('blacklist').child(auth.uid).exists()"
}
}
Это правило разрешает всем пользователям, вошедшим в систему (auth.uid !== null
), полное чтение.доступ к базе данных, но блокирует пользователей, которых вы пометили (!root.child('blacklist').child(auth.uid).exists()
).
Более подробный пример такого подхода см. в документации по управлению сессиями .