Как обработать персистентность аутентификации пользователя в IOS? - PullRequest
7 голосов
/ 13 февраля 2012

Я пытаюсь создать основу для своего приложения для iPhone и сервера. У меня есть пользователи, которые будут регистрироваться и входить в приложение iPhone. При обычном входе на веб-сайт http-сервер будет предоставлять файлы cookie, чтобы последующие запросы пользователя оставались аутентифицированными. Как мне справиться с этим на iPhone? Должен ли я просто отправлять имя пользователя / пароль каждый раз, когда у меня есть NSURLConnection GET или POST? Это кажется чрезмерным. Или я использую платформу ASIHTTPRequest для использования файлов cookie. Кто-нибудь может указать мне правильное направление для правильной реализации?

Спасибо!

1 Ответ

8 голосов
/ 13 февраля 2012

Отправка имени пользователя и пароля в каждом запросе невелика.

Вы можете использовать все, что хотите, для отправки файлов cookie.Это просто еще один заголовок HTTP.Но возникает вопрос о том, что в печенье.Это зависит от того, какова ваша клиент / серверная архитектура.Веб-приложения используют сеансовые ключи, потому что традиционно веб-клиенты не имеют никакого состояния, поэтому сервер приложений должен был.У нативных клиентов могут быть все виды состояний, и, как правило, для этого не требуется сервер.

Но вам нужна аутентификация.Вот для чего нужны вещи типа OAuth и OAuth 2 .Они позволяют вам аутентифицироваться один раз, а затем использовать токены, которые могут быть признаны недействительными на стороне сервера.Вроде как очень долго живущие сеансы без данных.

Они немного сложны, но есть библиотеки с открытым исходным кодом для серверной и клиентской частей, или вы можете свернуть свои собственные.Большая сложность заключается в получении оригинального токена, который вы можете замкнуть, если у вас есть клиент и сервер.OAuth может быть довольно сложным, потому что все запросы подписываются секретным токеном.OAuth 2 может быть таким же простым, как и общий секретный ключ (таким образом, требующий SSL) в файле cookie.

...