сохранение файла cookie букмарклета iphone - PullRequest
15 голосов
/ 24 марта 2010

У меня есть веб-приложение для iphone (на основе jqtouch), которое использует куки для аутентификации. Поток использования выглядит следующим образом:

  • пользователь переходит на мобильную целевую страницу и получает указание сохранить страницу в виде закладки на своей домашней странице.

  • они запускают букмарклет, чтобы перейти на страницу входа, чтобы войти и получить cookie.

  • cookie работает, и они могут перемещаться по всему веб-сайту.

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

  • Просто использование safari (т. Е. Запуск safari напрямую, а не через букмарклет) для навигации по страницам работает нормально (т. Е.: Запустить safari, перейти по URL, выполнить вход, перезапустить safari, вернуться к URL). 1021 *

  • Я считаю, что файлы cookie, которые были активны при создании букмарклета, являются постоянными, но все файлы cookie, установленные во время сеанса при доступе к сафари через букмарклет, не являются постоянными.

  • Мне интересно, если это проблема сафари / iphone и / или есть ли способ обойти это. Большое спасибо за любые идеи, которые вы можете предоставить.

Ответы [ 2 ]

2 голосов
/ 24 марта 2010

K, для тех, кто сталкивался с той же проблемой, я нашел обходной путь, используя локальное хранилище html5. Мне просто нужно было использовать javascript, чтобы установить хранилище на основе значений файлов cookie во время установки файлов cookie и установить файлы cookie из значений хранилища при загрузке первой страницы.

0 голосов
/ 08 июня 2012

Я пробовал это в одном из моих приложений. Я пробовал это таким образом:

  1. Пользователь входит в систему, и его cookie устанавливается в sharedHttpCookieStorage.
  2. Проверьте cookie по вашему URL, получите его значения и сохраните в хранилище вашего приложения.
  3. В следующий раз, когда пользователь захочет использовать ваше приложение, проверьте, есть ли в вашем хранилище какие-либо значения cookie. Если да, то создайте cookie с этими значениями, иначе он снова войдет в систему.
  4. Обязательно очищайте значения файлов cookie, когда пользователь выходит из системы или истекает срок действия файла cookie.

Я знаю, это звучит сложно, но на самом деле это действительно легко. Все, что вам нужно пройти, это документация Apple по NSHTTPCookie.

...