Я разрабатываю приложение, которое регистрируется на веб-сайте HTTPS. После аутентификации веб-сайт отправляет окончательный файл cookie, который помечен как «Безопасный».В фоновом режиме NSURLSession почему безопасные файлы cookie потеряны?
Приложение работает, когда я использую defaultSessionConfiguration()
для NSURLSession()
.
Когда я изменяю одну строку в приложении, чтобы использовать backgroundSessionConfigurationWithIdentifier()
, я не могу пройти стадию аутентификации. Я получаю веб-страницу, показывающую, что я аутентифицирован, но последующие запросы возвращают страницу входа.
Похоже, что «аутентификация успешных файлов cookie» отсутствует в общем хранилище файлов cookie.
Этот файл cookie является единственным файлом cookie, который веб-сайт обозначает как «безопасный». Обратите внимание, что этот HTTPS-сайт выполняет все транзакции через HTTPS.
TL; DR Что делает фоновый сеанс NSURLSession иначе, чем сеанс по умолчанию, чтобы потерять защищенный файл cookie?
EDIT: Я сделал еще несколько работ.
NSURLSession
Когда перенаправляет с помощью backgroundSessionConfiguration
он кажется игнорировать куки, которые были отправлены в заголовке редиректа? (Я думаю, что cookie, являющийся «безопасным», может не иметь решающего значения.)
Редирект работает правильно, если указан defaultSessionConfiguration
.
конфигурация сеанса по умолчанию использует постоянный кэш диска на основе (кроме случаев, когда результат будет загружен в файл) и ** хранит учетные данные в брелка пользователя. ** – Vin
К сожалению. Я должен был упомянуть, что это приложение ** iOS **. Поэтому файлы cookie сохраняются в sharedStorage только для приложения. – andymc