Как выйти из системы, если срок действия токена истек Android LiveData
Я работаю над одним приложением для Android И проблема в том, что когда токен истек, мне нужно выйти из системы. Сейчас мне нужно проверить срок действия токена во всем моем фрагменте. Так есть ли способ, чтобы я мог сделать эту задачу из централизованного местоположения.
1 ответ
Ты используешь retrofit
? Если это так, вы можете добавить кастом Interceptor
, который перехватывает каждый ответ и обрабатывает 401
перенаправив на логин.
Вы также можете определить SessionHandler
, что требует context
и из Interceptor
ты бы позвонил sessionHandler.onSessionExpired()
например. Надеюсь, вы поняли идею
Лично я предпочитаю использовать шаблон pub/sub для такого рода проблем. Как правило, когда вы обнаруживаете, что срок действия вашего токена истек (например, в перехватчике), инициируйте событие (именованный сеанс истек). Кроме того, есть некоторые потребители (например, BaseActivity, который расширяет все другие действия), которые фиксируют это событие и реагируют на него (в соответствии с вашим вопросом, перенаправляют на LoginActivity). Для реализации этого подхода вы можете как использовать какое-то готовое решение (например, greenrobot), так и разработать его с помощью LiveData.