Я разработал подобное приложение, поэтому вот как я решил это в psuedocode.
Но так как имя пользователя и пароль (вместо некоторого токена аутентификации) необходимы для каждого запроса httpКак это может вписаться?
1 #: Сделать первую страницу, страницу login .Пусть это View
включает два EditText
с (имя пользователя и пароль) и один Button
(кнопка входа в систему).
2 #: Сделайте запрос на вход при нажатии Button
, чтобы увидеть, получаете ли вы правильный Cookie
с именами заголовков HTTP , которые соответствуютсо значениями, которые вы получаете, когда вы вошли в систему. Найдите действительную информацию с помощью сетевого инструмента, например WireShark .Для получения дополнительной информации о процедуре входа в систему, проверьте мой другой ответ здесь .
3 #: если имя пользователя и пароль привели к правильной информации Cookie
, save имя пользователя и пароль в SharedPreferences
и сделать их значения доступными через ваше приложение , присвоив его классу Application
, прочитайте это для получения дополнительной информации о глобальных переменных .Если значения были неправильными и вы не получили действительный Cookie
, покажите его пользователю с помощью сообщения (Toast
?).
4 #: когда вы пытаетесь получить авторизованную информацию, отправляет запрос , используя сохраненную информацию в классе Application
.
5 #: В следующий раз вы запускаете приложение, отметьте в onCreate()
, где вы проверяете, содержит ли SharedPreferences
информацию о пользователе, если так: см. Шаг 6 #, в противном случае дождитесьпользователю начать ввод информации.
6 #: Если на странице входа в систему определена информация о пользователе, присвойте SharedPreferences
глобальному состоянию Application
, завершите вход в систему Activity
и запустите авторизованный Activity
вместо . это произойдет очень быстро , поэтому пользователь не заметит, что отображается "страница входа".
7 # (дополнительный шаг): в авторизованном Activity
убедитесь, чтополучить информацию о пользователе из экземпляра Application
.Когда делает первый запрос к авторизованному контенту, проверяет задачу, как вы делали в шаге # 3 , чтобы контролировать, изменил ли пользователь пароль наВеб-сайт.Если пользователь не изменил какую-либо информацию, начните захватывать ответ и вы можете делать все, что захотите.