2012-02-05 2 views
5

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

Детали:

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

+0

Приложение на базе PHP на базе iOS, не имеет смысла ... – craig1231

+6

Да, это так - не педантично. Он, очевидно, означает приложение iOS, которое выступает в роли клиента, который ведет переговоры с внутренним сервером, написанным на PHP. –

+0

Уважаемый Yahia, Спасибо за ваш совет, не могли бы вы прояснить свой комментарий. – Saeed

ответ

18

Сессии - концепция на стороне сервера - на стороне клиента нет сеанса.

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

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

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

+0

+1 для полностью правильного ответа. Только одно дополнение, сеанс не имеет * *, который должен храниться с использованием файлов cookie - это может быть и параметр get, в зависимости от настройки сервера/PHP. – Till

+0

Да, это правда. Я решил опустить это из ответа, чтобы избежать осложнений, но это действительный момент. –

+0

+1 это фантастика, это именно то, что мне нужно было читать, ура! –

Смежные вопросы