Приложение с управлением сессиями на стороне сервера - PullRequest
5 голосов
/ 05 февраля 2012

Мне нужно создать серверное (php) приложение с iOS-клиентом с механизмом авторизации «login», но я не знаю о сессии в iOS. Мое приложение требует входа на мой сайт (сайт на основе PHP), чтобы получить данные. Я не знаю, является ли сеанс для клиента iPhone хранящимся на сервере?

подробности:

После отправки запроса на вход из клиента iPhone в мое веб-приложение, я думаю, что здесь создается сеанс в моем веб-приложении (верно?), Как насчет моего следующего запроса? могу ли я получить доступ к тому же сеансу, созданному для первого запроса .. Другими словами: могу ли я делиться данными в веб-сеансе (на сервере), чтобы они были доступны в каждом запросе, отправленном клиентом iOS после входа в систему?

1 Ответ

18 голосов
/ 05 февраля 2012

Сеансы представляют собой концепцию на стороне сервера - на стороне клиента сеанс отсутствует.

Обычно происходит то, что сервер устанавливает cookie в заголовках ответа после входа в систему, и этот файл cookie содержитID сеанса, чтобы при последующих запросах сервер знал, что клиент использует этот сеанс, потому что он совпадает с файлом cookie.

Файлы cookie работают автоматически на iOS, поэтому вам вообще не нужно ничего делать.NSURLRequests имеет свойство HTTPShouldHandleCookies, которое по умолчанию имеет значение YES, поэтому все должно просто работать по умолчанию.

Если это не работает (или если вы просто хотите увидеть, что происходит), вы можете получить доступ к файлам cookie в iOSиспользуя API-интерфейсы NSHTTPCookieStorage.Загляните внутрь [NSHTTPCookieStorage sharedHTTPCookieStorage], который работает немного как NSDictionary.Вот где файл cookie сеанса должен быть установлен после входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...