Я создаю мобильный интерфейс с JQuery Mobile для уже существующего веб-приложения, которое требует аутентификации пользователя, и я не могу выбрать лучший подход для реализации процесса входа в систему.
Меня не так волнует аутентификация на стороне сервера, а скорее то, как реализовать ее на стороне пользователя.
После некоторых экспериментов выяснилось, что есть следующие варианты:
Стандартная отправка формы с POST \ перенаправлением:
-Отключить автоматический ajax с data-ajax = "false"
-Пользователь отправляет, проверяет учетные данные на сервере, затем отправляет перенаправление в приложение в случае успеха или обратно на страницу входа в систему в случае ошибки.
Метод Ajax с $. Mobile.changePage
-Отправка имени пользователя / пароля через Ajax
-В зависимости от ответа либо добавьте первую страницу приложения с помощью $. Mobile.changePage
, либо отобразите сообщение об ошибке
Ajax-метод с помощью window.location.replace
-По аналогии с вариантом 2, за исключением использования window.location.replace
для добавления первой страницы Ajax-метода приложения
с помощью POST; перенаправление только при неудачном входе в систему
-Держите включенным ajax для отправки форм.
-На стороне сервера объедините функцию аутентификации пользователя со страницей входа вашего приложения таким образом, чтобы она выполнялась только в том случае, если заданы поля формы.
-При успешном входе в систему верните главную страницу приложения.
-При неудачном входе в систему перенаправьте обратно на страницу входа.
-Если значения формы не заданы, проверьте правильность входа пользователя в систему и затем верните страницу стандартного вывода. Если вы не вошли в систему, перенаправьте обратно для входа в систему.
Некоторые соображения:
-Он должен использовать POST, чтобы избежать добавления данных для входа в URL
- Поддержание правильной работы кнопки «Назад», чтобы навигация была удобной для пользователя, кажется довольно сложной задачей.
-Я хотел бы максимально упростить процесс с минимальным количеством перезагрузок страниц
Есть идеи?
РЕДАКТИРОВАТЬ:
Я нашел 4-й метод, который может быть лучшим подходом. Это позволяет избежать проблем с функциональностью кнопки «Назад», возникающих из-за метода POST / перенаправления. Если пользователь аутентифицируется с первой попытки, плавный переход между страницами сохраняется все время. В противном случае процесс перехода между страницами будет постоянно поддерживаться после успешного входа в систему. Более того, все встроенные функции обработки ошибок JQM остаются доступными.