Аутентификация собственного мобильного приложения с использованием REST API


16

Вскоре я начинаю новый проект, ориентированный на мобильные приложения для всех основных мобильных платформ (iOS, Android, Windows). Это будет архитектура клиент-сервер.

Приложение является информационным и транзакционным. Для транзакционной части они должны иметь учетную запись и войти в систему, прежде чем транзакция может быть выполнена. Я новичок в разработке мобильных приложений, поэтому не знаю, как выполняется аутентификация на этих платформах. Клиенты будут взаимодействовать с сервером через REST API. Будет использовать HTTPS конечно.

Я еще не решил, хочу ли я, чтобы пользователь входил в систему при открытии приложения или только при выполнении транзакции.

Я получил следующие вопросы:

1) Как и в приложении Facebook, вы вводите свои учетные данные только при первом запуске приложения. После этого вы автоматически входите в систему каждый раз, когда открываете приложение. Как это сделать? Просто зашифровывая и сохраняя учетные данные на устройстве и отправляя их при каждом запуске приложения?

2) Нужно ли аутентифицировать пользователя для каждого (транзакционного) запроса к API REST или использовать подход, основанный на токене?

Пожалуйста, не стесняйтесь предлагать другие способы аутентификации.

Благодарность!

Ответы:


14

Вы передаете имя пользователя / пароль методу входа в RESTful API, и он возвращает токен доступа. Этот токен доступа является просто некоторой уникальной (для системы) строкой.

Устройство хранит (сохраняется) этот токен доступа. Каждый раз, когда вы отправляете RESTful-запрос на сервер, вы помещаете этот токен доступа в заголовок HTTP-запроса. Сервер находит пользователя по токену доступа и при успешном выполнении выполняет запрос.

имя пользователя / пароль не должны храниться на устройстве.


Могут ли третьи лица (хакеры и т. Д.) Получить токен доступа?
Supercell

Это возможно, конечно. Особенно, если вы не используете HTTPS. Большинство онлайн-клиентов электронной почты просят вас повторно регистрироваться время от времени. Например, токен имеет срок действия, равный двум неделям. Так что раз в две недели вам нужно будет заново регистрироваться.
c-smile

Как будет сгенерирован токен доступа и сохранится ли токен доступа на сервере.
Гиаф Серхал

@ c-smile Facebook никогда не просил меня войти заново. Поэтому я не вижу разницы между паролем и токеном доступа.
Микаэль Маррач

я знаю, что уже поздно но Facebook и другие провайдеры выдают токен обновления, токен доступа и время истечения (для токена доступа) во время входа в систему. токен доступа является недолгим, и новый токен доступа может быть сгенерирован с помощью токена обновления. При следующем входе в систему можно создать новый токен обновления, сделав старый недействительным
Cerlin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.