NSURLConnection автоматически сохраняет файлы cookie, отправленные с сервера?

Я вошел в свою базу данных торнадо от ios и отправил обратно secure_cookie, и я заметил, что могу также запросить другую информацию до тех пор, пока я проверил secure_cookie, который я установил. Как долго NSURLConnection сохраняется в файле cookie или удаляется файл cookie после закрытия приложения?

Это указано в документах Apple:

Система загрузки URL автоматически отправляет любые сохраненные файлы cookie подходящий для NSURLRequest. если в запросе не указывается отправлять файлы cookie.

Ответы

Ответ 1

Несколько аспектов вашего вопроса.

Для начала NSURLConnection будет по умолчанию управлять файлами cookie на основе настроек устройства. Он сохранит файлы cookie в хранилище и отправит их по мере необходимости (когда домен соответствует существующему файлу cookie). Это означает, что если вы сделаете запрос из URL-адреса с куки файлом, сохраненным в хранилище cookie, он будет отправлен. Это объясняет поведение, о котором вы говорили. Как правило, с настройками по умолчанию cookie будет сохраняться довольно долго.

Этот исходный оператор, однако, может быть не подходит для ваших нужд. Я предполагаю, что вы захотите получить контроль над истечением (или продолжением "навсегда" ) этого поля secure_cookie, чтобы в будущем ваше приложение не должно было проходить аутентификацию.

В этом случае NSHTTPCookieStorage - это место для поиска. Этот класс позволит вам получить:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString: @ "http://example.com" ]]

и установите:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie] (плюс настройка объекта словаря файлов cookie)

Основываясь на опыте и отзывах других пользователей в Интернете, вы должны отметить, что хранилище файлов cookie не всегда на 100% надежнее. Если вы хотите отправить конкретный файл cookie и значение на сервер, вы должны сохранить это значение с вашим приложением (например, prefs или Core Data, например) и reset cookie с соответствующим NSHTTPCookieStorage при каждом запуске.

Ответ 2

Вы должны посмотреть в управление кешем cookie здесь Это поможет вам лучше понять, как обрабатывается кэширование для cookie.

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

Надеюсь, это поможет вам решить эту проблему.