Дизайн подход для входа без авторизационного токена

Я пишу приложение для Android 2.2 для своей компании. Приложение просто отправляет запросы http get/put/post для выполнения определенных операций. Реальной процедуры входа в систему не существует, так как имя пользователя и пароль должны быть включены в каждый запрос http.

Я видел, что в Android есть AccountManager. Но так как имя пользователя и пароль (вместо некоторого токена авторизации) необходимы для каждого http-запроса, как он может вписаться? Очевидно, я хочу сделать его похожим на другие приложения для Android, чтобы пользователю было необходимо войти в систему только один раз в первый раз, и он не будет запрашивать имя пользователя / пароль при повторном запуске приложения.

Любое предложение приветствуется. Спасибо!

1 ответ

Решение

Я разработал такое приложение, вот как я решил это в psuedocode.

Но так как имя пользователя и пароль (вместо некоторого токена авторизации) необходимы для каждого http-запроса, как он может вписаться?

1 #: сделать первую страницу, страницу входа. Пусть это View включают два EditText s (имя пользователя и пароль) и один Button (кнопка входа).

2 #: сделать запрос на вход в Button нажмите, чтобы увидеть, если вы получаете правильный Cookie с именами заголовков HTTP, которые соответствуют значениям, которые вы получаете при входе в систему. Найдите действительную информацию с помощью сетевого инструмента, такого как WireShark. Для получения дополнительной информации о процедуре входа в систему, проверьте мой другой ответ здесь.

3 #: если имя пользователя и пароль верны правильно Cookie сохранить имя пользователя и пароль в SharedPreferences и сделать их значения доступными через ваше приложение, назначив его в Application класс, прочитайте это для получения дополнительной информации о глобальных переменных. Если значения были неправильными и вы не получили действительный Cookie, показать его пользователю через сообщение (Toast?).

4 #: Когда вы пытаетесь получить доступ к авторизованной информации, сделайте запрос, используя сохраненную информацию в Application учебный класс.

5 #: при следующем запуске приложения проверьте onCreate() где вы проверяете, если SharedPreferences содержит информацию о пользователе, если так: см. шаг 6#, в противном случае подождите, пока пользователь начнет вводить информацию.

6 #: Если на странице входа определена информация о пользователе, назначьте SharedPreferences к глобальному Application состояние, закончите вход Activity и начать авторизованный Activity вместо. Это произойдет очень быстро, поэтому пользователь не заметит, что была отображена "страница входа".

7 # (дополнительный шаг): в авторизованном Activity убедитесь, что вы получили информацию о пользователях из Application пример. Делая первый запрос к авторизованному контенту, подтвердите задачу, как вы делали в шаге № 3 , чтобы проверить, изменил ли пользователь пароль на веб-сайте. Если пользователь не изменил какую-либо информацию, начните захватывать ответ, и вы можете делать все, что хотите.

Другие вопросы по тегам