2012-08-18 13 views
14

मैंने आईओएस से अपने टॉरनाडो बैकएंड में लॉग इन किया और एक सुरक्षित_cookie वापस भेज दिया और मैंने देखा कि जब तक मैं सेट की गई सुरक्षित_cookie को सत्यापित करता हूं तब तक मैं अन्य जानकारी का भी अनुरोध कर सकता हूं। NSURLConnection कुकी को बरकरार रखता है या ऐप बंद करने के बाद कुकी हटा दी जाएगी?क्या NSURLConnection स्वचालित रूप से सर्वर से भेजे गए कुकीज़ को जारी रखता है?

यह एप्पल डॉक्स में बताया गया है:

यूआरएल लोड हो रहा है सिस्टम स्वचालित रूप से किसी भी संग्रहीत कुकीज़ एक NSURLRequest के लिए उपयुक्त भेजता है। जब तक अनुरोध कुकीज़ को निर्दिष्ट नहीं करता है।

+0

क्या इस प्रश्न का कोई जवाब नहीं है? "NSRLConnection कुकी को बरकरार रखता है या उपयोगकर्ता को ऐप बंद करने के बाद कुकी हटा दी जाएगी?" – RubyGladiator

उत्तर

24

आपके प्रश्न के कुछ पहलू।

प्रारंभ करने के लिए, NSURLConnection डिफ़ॉल्ट रूप से डिवाइस के लिए सेटिंग्स के आधार पर कुकीज़ प्रबंधित करेगा। यह कुकीज़ को स्टोर में सहेज लेगा और उन्हें उचित के रूप में भेजेगा (जब डोमेन मौजूदा कुकी से मेल खाता है)। इसका अर्थ यह है कि यदि आप कुकी स्टोर में सहेजी गई कुकी के साथ यूआरएल से अनुरोध करते हैं, तो उसे भेजा जाएगा। यह आपके द्वारा वर्णित व्यवहार को बताता है। आम तौर पर, डिफ़ॉल्ट सेटिंग्स के साथ, कुकी थोड़ी देर तक जारी रहेगी।

हालांकि, यह प्रारंभिक बयान आपकी आवश्यकताओं के लिए सहायक नहीं है। मुझे लगता है कि आप इस secure_cookie फ़ील्ड की समाप्ति (या हमेशा "हमेशा के लिए") पर नियंत्रण रखना चाहते हैं, इसलिए आपके ऐप को भविष्य में और प्रमाणित करने की आवश्यकता नहीं है।

इस मामले में, NSHTTPCookieStorage देखने के लिए जगह है। इस वर्ग आप की अनुमति देगा दोनों को पुनः प्राप्त करने:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString: @ "http://example.com"]]

और सेट:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie] (प्लस की स्थापना कुकी शब्द वस्तु)

ऑनलाइन अनुभव और दूसरों के फीडबैक के आधार पर, आपको ध्यान रखना चाहिए कि कुकी संग्रहण हमेशा 100% विश्वसनीय नहीं है। यदि आप सर्वर पर एक विशिष्ट कुकी और मूल्य भेजना चाहते हैं, तो आपको उस मान को अपने ऐप (प्रीफ़ या कोर डेटा, उदाहरण के लिए) से स्टोर करना चाहिए, और प्रत्येक स्टार्टअप पर उपयुक्त NSHTTPCookieStorage के साथ कुकी को रीसेट करना चाहिए।

+0

एकमात्र मुद्दा जो मुझे चिंतित करता है वह यह है कि सेब डॉक्स से यह क्यूउट है: "नोट: किसी एप्लिकेशन में कुकी स्वीकृति नीति को बदलना अन्य सभी चल रहे अनुप्रयोगों के लिए कुकी स्वीकृति नीति को प्रभावित करता है।जब कोई अन्य एप्लिकेशन कुकी स्टोरेज या कुकी स्वीकृति पॉलिसी को बदलता है, तो एनएसएचटीटीपीक्यूकी स्टोरेज एनएसएचटीटीपीकी स्टोरेज कूकीज चेंज नॉटिफिकेशन और एनएसएचटीटीपीकी स्टोरेजएसेप्ट पॉलिसी चेंज नॉटिफिकेशन नोटिफिकेशन पोस्ट करके एक एप्लीकेशन को सूचित करता है। "इसलिए ऐसा लगता है कि मुझे केवल NSURLConnection से डिफ़ॉल्ट कुकी प्रबंधन का उपयोग करना चाहिए। – RubyGladiator

+3

@RubyGladiator, यह दस्तावेज मैक ओएस है विशिष्ट, और मुझे लगता है कि उपर्युक्त नोट यह कहता है कि आईओएस के लिए यह सच नहीं है: आईओएस नोट: कुकीज़ को आईओएस में एप्लिकेशन द्वारा साझा नहीं किया जाता है। –

+0

यह सच है, जिस तरह से दस्तावेज़ स्थापित किए गए हैं, उस बिंदु को भ्रमित कर दिया गया है। – RubyGladiator

2

आपको here से कुकी कैश प्रबंधन को देखना होगा इससे आपको यह समझने में मदद मिलेगी कि कुकी के लिए कैशिंग को कैसे संभाला जाता है।

एक और बहुत अच्छा description है, जहां यह उल्लेख किया गया है कि आप हेडर फ़ील्ड से कुकी प्राप्त कर सकते हैं और फिर आपके पास इसका पूर्ण नियंत्रण है। यदि आप फिर से लॉन्च करते हैं, तो स्टोर करना और स्टोर करना चाहते हैं।

मुझे आशा है कि इससे आपको इसे हल करने में मदद मिलनी चाहिए।

संबंधित मुद्दे