Pracuję nad aplikacją PhoneGap z wykorzystaniem sesji serwera. Do obsługi sesji potrzebuje plików cookie. Dodatkowo należy obsłużyć ciasteczko z load balancera. Więc nie ma innego wyjścia. Jak postępujesz z plikami cookie w aplikacji PhoneGap?
Przeprowadziłem już pewne badania:
- Niektórzy twierdzą, że obsługa plików cookie może zależeć od tego, czy serwer nie ustawia plików cookie dla nieznanych agentów użytkownika (IIS): sesja PhoneGap (pliki cookie) w systemie iOS
- W JavaScript pliki cookie można ustawić za pomocą document.cookie = ..., ale nie są one zapisywane w PhoneGap i tracone. Przed odpaleniem xhr żąda to działa.
- Pliki cookie można pobrać po żądaniu xhr za pomocą xhr.getResponseHeader ('Set-Cookie'). Ale tylko wtedy, gdy faktycznie jest ustawiony na serwerze. Niestety, jQuery usuwa nagłówek „Cookie”.
- Właściwość JavaScript document.cookie nie jest przypisywana i nie jest aktualizowana po żądaniach (xhr).
- Niektórzy sugerują, że localStorage zapisuje identyfikatory sesji itp. Ale wszystkie skrypty mają do niego dostęp i może to być problem z bezpieczeństwem XSS. Pliki cookie pozwalają obejść ten problem, używając flagi httponly.
- iOS: Istnieją pewne modyfikacje, które zmienią zachowanie WebView w celu obsługi plików cookie. Ale wydaje się, że nie działają z iOS 6 i PhoneGap 2.5: https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ZJE1nxX63ow
- Wydaje się, że pliki cookie są domyślnie włączone w AppDelegate.m (v2.5).