Как выйти из системы с помощью Firebase Admin SDK? - PullRequest
0 голосов
/ 03 октября 2018

Итак, я создал облачную функцию, используя Firebase Admin SDK.Цель этой функции - отключить пользователя, и после его успешного завершения я хочу, чтобы этот пользователь вышел из моего приложения.Я отключил пользователя, но не могу понять, как выйти из него.

Мне было интересно, есть ли какая-нибудь функция обходного пути для достижения этой цели?

1 Ответ

0 голосов
/ 03 октября 2018

Пользователь, выполнивший вход в ваше приложение, имеет идентификационный токен, действительный в течение часа.После того, как этот токен был создан, его нельзя отозвать.

Типичный способ обработки вашего сценария использования - также пометить пользователя в базе данных на стороне сервера после того, как вы отключите его учетную запись, а затемпроверяйте этот флаг в любых операциях.

Например, если вы используете базу данных 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()).

Более подробный пример такого подхода см. в документации по управлению сессиями .

...