Постоянное сохранение файлов cookie iphone
У меня есть веб-приложение на основе iphone (jqtouch), которое использует файлы cookie для аутентификации. Поток использования выглядит следующим образом:
-
пользователь переходит на мобильную целевую страницу и получает указание сохранить страницу как букмарклет на своей домашней странице.
-
они запускают букмарклет, чтобы перейти на страницу входа в систему, чтобы войти в систему и получить файл cookie.
-
cookie работает, и они могут перемещаться по всему веб-сайту.
-
Однако этот сеансовый файл cookie не является постоянным. Если они покидают сафари и затем перезапускают с помощью сохраненного букмарклета, файлы cookie, установленные во время предыдущего сеанса, удаляются.
-
Просто использование сафари (т.е. запуск сафари напрямую, а не через букмарклет) для навигации по страницам отлично работает (например: запуск сафари, переход на url, вход в систему, перезапуск сафари, возврат к URL-адресу).
-
Я обнаружил, что файлы cookie, которые были активны при создании букмарклета, являются постоянными, но любые файлы cookie, установленные во время сеанса, когда сафари осуществляется через букмарклет, не являются постоянными.
-
Мне интересно, является ли это проблемой сафари /iphone и/или если есть какой-либо путь вокруг этого. Большое спасибо за любую информацию, которую вы можете предоставить.
Ответы
Ответ 1
K, для тех, кто сталкивается с одной и той же проблемой, я нашел работу, используя html5 localstorage. Мне просто нужно было использовать javascript для установки хранилища на основе значений cookie, когда устанавливались файлы cookie, и устанавливать куки файлы из значений хранилища при загрузке первой страницы.
Ответ 2
Я пробовал это в одном из моих приложений. Я пробовал это следующим образом:
- Пользователь входит в систему, и его файл cookie устанавливается в sharedHttpCookieStorage.
- Проверьте файл cookie на ваш URL-адрес, получите его значения и сохраните в хранилище приложений.
- В следующий раз, когда пользователь хочет использовать ваше приложение, проверьте, есть ли в вашем хранилище какие-либо значения cookie. Если "Да", создайте файл cookie с этими значениями, заставьте его снова войти в систему.
- Обязательно очистить значения cookie, когда пользователь выходит из системы или истекает срок действия файла cookie.
Я знаю, что это звучит сложно, но на самом деле очень легко. Все, что вам нужно, - это документация Apple по NSHTTPCookie.