Аутентификация Firebase не отменяется при удалении пользователя?

Я столкнулся с странным поведением простейшего входа Firebase с адресом электронной почты / паролем: если я вхожу в систему с существующей учетной записью пользователя, я могу писать в firebase ref (т.е. $ root / list / $ item). Если нет, у меня нет доступа для записи, как ожидалось (правила Firebase, похоже, в порядке), НО если клиент входит в систему, и я тем временем удаляю пользователя из Firebase Forge (страница Auth), подключенный клиент все еще записывает доступ к Firebase ref! Это по дизайну или это ошибка? Благодарю.

вот правила:

{ "rules": { ".read": true, "list": { "$item": { ".write": "auth != null && newData.child('author').val() == auth.id", ".validate": "newData.hasChildren(['author', 'content'])", "author": { ".validate": "newData.val() == auth.id" }, "content": { ".validate": "newData.isString()" } } } } } 

Короткий ответ: по дизайну или, точнее, не применим в этом случае.

Во время auth FirebaseSimpleLogin генерирует токен. Когда токен предоставляется клиенту, он остается в силе до истечения срока его действия. Таким образом, когда вы удаляете учетную запись пользователя при простом входе в систему, это никоим образом не переходит на клиентскую машину и не удаляет токен. Это довольно стандартная модель auth, а длина истечения срока действия маркера (настраиваемая в Forge) является ключевым ограничением для безопасности.

Если вы хотите немедленно аннулировать логины, простой вход не подходит для работы. Вы захотите использовать пользовательский вход и создать свои собственные токены. Есть несколько замечательных дискуссий по revokable токенам , поэтому я отдам вас тем, поскольку это выходит за frameworks вашего вопроса.

  • Firebase: установить правила безопасности в зависимости от пользовательских ролей
  • Interesting Posts

    Получить высоту и ширину компоновки программно

    Как вставить в @FacesValidator с помощью @EJB, @PersistenceContext, @Inject, @Autowired

    Создание участка с разбивкой по областям с использованием ggplot2

    Наследование с нескольких интерфейсов с тем же именем метода

    Можете ли вы вызвать ko.applyBindings, чтобы связать частичный просмотр?

    Заменить текст закладки в файле Word с помощью Open XML SDK

    Как заменить обратную косую черту на косую черту с помощью java?

    Как набрать карасон с клавиатурой querty?

    Преобразование типа данных datetime2 в тип данных datetime приводило к превышению значения

    Как удалить определенные символы из строки в C ++?

    Как я могу поместить ListView в ScrollView без его свертывания?

    Как мне заставить VLC играть на втором мониторе на окнах?

    Как всегда запускать приложения администратора в Windows

    андроид имитирует низкое сетевое подключение

    Как запускать службу каждый день в полдень и при каждой загрузке

    Давайте будем гением компьютера.