ฉันกำลังทำงานกับแอป PhoneGap ที่มีการใช้งานเซสชันเซิร์ฟเวอร์ ต้องใช้คุกกี้เพื่อจัดการเซสชัน นอกจากนี้ควรจัดการคุกกี้จากตัวจัดสรรภาระงานด้วย ดังนั้นจึงไม่มีทางรอบ คุณจัดการกับคุกกี้ในแอป PhoneGap ของคุณอย่างไร?
ฉันได้ทำวิจัยสำเร็จแล้ว:
- บางคนบอกว่าการจัดการคุกกี้อาจขึ้นอยู่กับเซิร์ฟเวอร์ที่ไม่ได้ตั้งค่าคุกกี้สำหรับตัวแทนผู้ใช้ที่ไม่รู้จัก (IIS): เซสชัน PhoneGap (คุกกี้) บน iOS
- ในคุกกี้ JavaScript สามารถตั้งค่าด้วย document.cookie = ... แต่จะไม่ถูกบันทึกใน PhoneGap และสูญหาย ก่อนที่จะทำการร้องขอ xhr มันใช้งานได้
- สามารถเรียกดูคุกกี้ได้หลังจากคำขอ xhr ด้วย xhr.getResponseHeader ('Set-Cookie') แต่เมื่อตั้งค่าบนเซิร์ฟเวอร์จริงเท่านั้น น่าเสียดายที่ jQuery ตัดส่วนหัว "คุกกี้" ออก
- คุณสมบัติ JavaScript document.cookie ไม่ได้รับการกำหนดและไม่ได้รับการอัพเดตหลังจากการร้องขอ (xhr)
- บางคนแนะนำให้ localStorage บันทึกรหัสเซสชันเป็นต้น แต่สคริปต์ทั้งหมดสามารถเข้าถึงได้และนี่อาจเป็นปัญหาด้านความปลอดภัย XSS คุกกี้สามารถแก้ไขปัญหานี้ได้โดยใช้แฟล็ก httponly
- iOS: มีการปรับเปลี่ยนบางอย่างซึ่งจะเปลี่ยนพฤติกรรมของ webView เพื่อรองรับคุกกี้ แต่ดูเหมือนว่าจะใช้งานไม่ได้กับ iOS 6 และ PhoneGap 2.5: https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ZJE1nxX63ow
- ดูเหมือนว่าคุกกี้จะเปิดใช้งานโดยค่าเริ่มต้นใน AppDelegate.m (v2.5)