サーバーセッションを使用するPhoneGapアプリに取り組んでいます。セッションを処理するには Cookie が必要です。さらに、ロード バランサーからの Cookie も処理する必要があります。したがって、回避策はありません。PhoneGap アプリで Cookie をどのように処理しますか?
私はすでにいくつかの研究を行っています:
- Cookie の処理は、サーバーが不明なユーザー エージェント (IIS) の Cookie を設定しないことに依存する可能性があると言う人もいます: iOS での PhoneGap セッション (Cookie)
- JavaScript では document.cookie = ... で Cookie を設定できますが、PhoneGap には保存されず、失われます。xhr リクエストを発行する前に動作します。
- xhr.getResponseHeader('Set-Cookie') を使用して、xhr リクエストの後に Cookie を取得できます。ただし、実際にサーバーに設定されている場合のみ。残念ながら、jQuery は「Cookie」ヘッダーを取り除きます。
- JavaScript の document.cookie プロパティが割り当てられず、(xhr) リクエスト後に更新されません。
- セッションIDなどを保存するためにlocalStorageを提案する人もいますが、すべてのスクリプトがそれにアクセスでき、これはXSSセキュリティの問題である可能性があります. Cookie は、httponly フラグを使用してこの問題を回避します。
- iOS: Cookie をサポートするために webView の動作を変更するいくつかの変更があります。しかし、iOS 6 と PhoneGap 2.5 では動作しないようです: https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ZJE1nxX63ow
- AppDelegate.m (v2.5) では、Cookie がデフォルトで有効になっているようです。