Проверять аутентификацию пользователя на каждой активности - PullRequest
0 голосов
/ 07 октября 2019

Уместно ли проверять аутентификацию пользователя на API сервера в каждом действии (я предполагаю использование базового действия при возобновлении)? Это для предотвращения входа пользователя на несколько устройств с одной учетной записью. Или есть лучший подход для этого?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

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

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

Выполнение явного вызова API в onResume () кажется расточительным и является в основном опросом на стороне клиента. Я бы сделал это только в том случае, если требовалось сохранять свежую информацию об аутентификации, поскольку информация на экране чувствительна.

0 голосов
/ 07 октября 2019

Существует несколько подходов к решению этой проблемы.

  1. Push-уведомление - Когда такой же пользователь входит в систему на другом устройстве, необходимо отправить push-уведомление на первое устройство для входа. Когда первое устройство входа в систему получает уведомление, вы можете поместить свою логику туда.
  2. Ставить статус выхода из системы на каждом API - вам необходимо проверять код состояния выхода из системы в каждом ответе API. Когда вы получаете код состояния выхода из системы, вы можете поместить свою логику туда

Примечание: Для второго подхода вам нужно создать один общий класс вызова API. Таким образом, вам не нужно указывать этот код состояния в каждом коде вызова API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...