Android App Стратегия для отслеживания сеанса входа - PullRequest
8 голосов
/ 10 октября 2011

У меня есть PHP-скрипт, который входит в систему и возвращает массив JSON с идентификатором сеанса, если вход был успешным.

В моем приложении я хочу войти на первую страницу и продолжить работу через приложениевход в систему. Я создал одноэлементный класс, который содержит идентификатор сеанса (вместе с несколькими другими полями), полученный из JSON со страницы PHP.Поле синглтон-объекта "session_id" проверяется в зависимости от того, что делает пользователь.

Если пользователь хочет выйти из системы, то для session_id просто устанавливается значение null, таким образом, происходит выход из системы.

Я также использую библиотеку HttpURLConnection, чтобы ПОСТАВИТЬ имя пользователя / пароль при входе в систему.

Это достаточно приличный подход для решения этой ситуации?

Ответы [ 2 ]

26 голосов
/ 10 октября 2011

Вот некоторые вещи, о которых вы должны подумать:

  • После того, как вы подтвердите подлинность пользователя и сохраните session_id локально, отправьте session_id в заголовке каждого из ваших http-запросов. Таким образом, вы отправляете не учетные данные с каждым запросом, а идентификатор сеанса. И если что-то случится на стороне сервера с сеансом, транзакция не будет разрешена.
  • При выходе не просто удаляйте session_id на стороне вашего приложения (клиента). Также отправьте выход на сервер, чтобы сеанс можно было убить на стороне сервера.
  • Если сеанс прерван на стороне сервера, вам нужно будет выполнить одно из двух действий: А) предложить пользователю повторно войти в систему. B) Используйте учетные данные хранилища для входа в систему, создания нового идентификатора сеанса и сохранения его снова в своем синглтоне.

Это гарантирует немного больше безопасности и функциональности, чем просто очистка идентификатора сеанса на стороне вашего приложения.

0 голосов
/ 10 октября 2011

Эта стратегия, вероятно, будет работать.В приложении, над которым я работал, я сохранял возвращаемые данные из логина в общих настройках Android.Если пользователь вышел из системы, я очистил настройки.Это позволило пользователям оставаться в системе, даже если они закрыли приложение и вернулись позже.У меня был токен аутентификации, который я проверил, чтобы убедиться, что логин пользователя все еще действителен.

Как вы планируете обрабатывать постоянные логины?Срок действия sessionID истекает?Возможно, вы захотите подумать об этих ситуациях, иначе, как только пользователь войдет в систему, он будет входить в систему вечно или до тех пор, пока приложение открыто.

...