Авторизуйте пользователей, используя MVC удостоверение, используя PhoneGap
Я использую стандартное членство в MVC 5, чтобы пользователи могли проходить аутентификацию для использования функций на моем сайте. Помимо входа в систему и регистрации, ВСЕ действия требуют, чтобы кто-то вошел в систему.
Я хочу использовать PhoneGap, чтобы взять мой мобильный готовый HTML и превратить его в мобильное приложение. Я намерен использовать ajax для всех вызовов моих действий.
Как мне сделать это, если HTML-страницы не находятся на одном сервере? Как я могу войти в систему, а затем позволить им совершать звонки?
1 ответ
Аутентификация пользователей с мобильных устройств довольно проста благодаря новому членству в MVC 5. По сути, каждый HTTP-запрос, отправляемый на ваш сервер с устройства, будет содержать маркер-носитель для авторизации этого запроса. Когда ваш метод Web API получает запрос, он идентифицирует пользователя, делающего его, через токен на предъявителя. Это позволяет использовать стандарт Authorize
атрибут в ваших контроллерах Web API, который, я уверен, вы привыкли использовать в контроллерах MVC. Вот базовый пример этого процесса, но по сути он выглядит так:
- На ваш сервер сделан запрос, содержащий имя пользователя и пароль.
- Сервер проверяет имя пользователя / пароль и отправляет обратно токен на предъявителя
- Сделайте еще один запрос на ваш сервер для доступа к данным или другим функциям и включите токен на предъявителя в каждый запрос
Предполагая, что вы делаете это с мобильного устройства, некоторые варианты хранения токена - это локальное хранилище HTML5, SQLLite и т. Д. При этом не выполняется вход в систему - существует только авторизация запросов к серверу. Конечно, пользователь не знает этого, поэтому очень легко смоделировать типичный опыт входа в систему. Вот краткий пример, расширенный на приведенном выше:
- Создайте стандартный экран входа в систему с полями для имени пользователя и пароля и кнопкой входа в систему
- Пользователь заполняет его, и когда он нажимает кнопку входа в систему, вы делаете AJAX-вызов на ваш сервер с запросом токена на предъявителя с введенными учетными данными пользователя (должен быть через HTTPS)
- Сервер аутентифицирует учетные данные, и вы получаете токен на предъявителя. С точки зрения пользователя, он теперь "залогинен".
Один из способов обработки токена-носителя здесь - сохранить его в SQLlite или локальном хранилище, чтобы вы могли легко получить его и включить в любые другие запросы к серверу, которые вы делаете. Вы просто должны принять во внимание, что токен имеет срок действия (установленный вами, см. Ссылку, которую я разместил), и соответственно разработать свое приложение. Возможно, вы захотите усилить свою безопасность, сохраняя маркер носителя только на мобильном устройстве, пока пользователь использует приложение. Когда они закончат, вы удалите его из хранилища на устройстве, и пользователь должен снова пройти процесс аутентификации (то есть "войти"), когда они откроют приложение.
Кроме того, это видео " Защита веб-API.Net" определенно стоит посмотреть.