Удалить пользователя через панель инструментов, но пользователь все еще вошел в систему?

Я создал приложение Appcelerator для iPhone на основе аутентификации Firebase, которое работает очень хорошо. Но теперь я сталкиваюсь с некоторым неожиданным поведением. Моя настройка такова: при запуске приложения пользователь должен войти или зарегистрироваться. Во время регистрации создается учетная запись, и соответствующие данные учетной записи (идентификатор пользователя, имя, адрес электронной почты, дата и т. д.) также сохраняются в записи данных /users/uid.

Когда я удаляю пользователя из Firebase через панель инструментов, удаляя его как из /users/uid, так и из вкладки «Вход и аутентификация», все выглядит ясно. Но когда пользователь открывает приложение, он все еще остается авторизованным.

Как я могу принудительно удалить пользователя, если он также выйдет из системы при следующем открытии приложения?


person t vm    schedule 03.04.2016    source источник


Ответы (2)


Согласно Firebase Google Group, это известная ошибка в Firebase:

Это известная ошибка с нашей стороны. Как вы заметили, после удаления пользователя существующие токены аутентификации остаются действительными и могут использоваться для чтения и записи в вашу базу данных Firebase. Правила безопасности по-прежнему применяются к этим токенам, и этот пользователь по-прежнему сможет получить доступ только к своим собственным данным Firebase (если ваши правила настроены как таковые). Эти токены аутентификации будут действительны до истечения срока их действия. В настоящее время нет обходного пути для этой ошибки, хотя мы собираемся исправить это в будущем выпуске.

https://groups.google.com/d/msg/firebase-talk/Yr_wn02q0bk/eTM9hop3paoJ

Единственное, что я могу сделать, это проверить, можете ли вы читать в своей области пользователей, и, если там ничего нет, принудительно выйти из системы.

person Simon    schedule 03.04.2016
comment
У меня похожая проблема. Очень расстраивает, что у них еще нет обходного пути. Я думаю, было бы довольно просто реализовать проверку того, соответствует ли их токен аутентифицированному пользователю или нет. - person ; 16.08.2016
comment
Кто-нибудь знает, исправлено ли это? - person MikeG; 19.10.2016
comment
@Simon, я пытаюсь сделать, как вы предложили check whether you can read to your users area, and if there's nothing there, force a log out, но ни один обработчик завершения от наблюдателя не выполняется, ни with, ни withCancel. Мой пост stackoverflow.com/questions/45668411/ - person Laura Calinoiu; 14.08.2017

Судя по вашему поведению, может быть проблема с конфигурацией или просто ошибка. Удаляется ли информация о пользователях из соответствующего источника данных (база данных или хранилище в памяти)? Я бы начал с этого, а затем перешел к изучению того, как работают соответствующие файлы cookie/токены, и связался с их службой поддержки.

Хотя, возможно, вам не следует сразу удалять пользователя, возможно, просто отключив пользователя, достигнув того же результата? Возможно, это поведение будет работать правильно.

person tmpg    schedule 03.04.2016