Отдельный кувшин cookie для WebView в OS X
Я пытался достичь цели создания уникального (не общего) кука файла cookie для WebView в Mac OS X (управление файлами cookie отличается для iOS).
После прочтения большого количества вопросов StackOverflow и копания документов я нашел самое близкое решение моей проблемы в этих статьях:
Я установил пример приложения, используя их: https://github.com/jjconti/swift-webview-isolated
Основная идея - реализовать необходимые методы из протоколов WebResourceLoadDelegate и WebPolicyDelegate и использовать BSHTTPCookieStorage для хранения и извлечения файлов cookie. Кроме того, мое приложение-пример позволяет сохранить объект cookieStorage, чтобы его можно было перезагрузить в будущих исполнениях.
К сожалению, приложение не работает нормально на каждом веб-сайте (автор статей ориентировался на один конкретный веб-сайт). Например, Gmail и NewRelic вы сразу же выходите из системы после входа в систему (или после выполнения некоторых действий). Это заставляет меня подозревать ошибку в реализации хранилища файлов cookie, которую я еще не смог найти.
Может ли кто-нибудь указать мне, если что-то не хватает?
Ответы
Ответ 1
Проблема заключается в отсутствии изоляции cookie в JS-уровне. document.cookie все еще указывает на общую банку cookie. Чтобы реализовать настоящий изолированный веб-просмотр cookie, вы должны переопределить свойство cookie документа.
Вы можете попробовать выполнить мою реализацию:
http://cyyuen.github.io/ADCookieIsolatedWebView
Он работает на сайте, используя document.cookie, чтобы получить файл cookie, такой как Dropbox.com. Однако сеттер не реализован.