का उपयोग कर स्वचालित सत्र कुकी रीफ्रेशिंग को कार्यान्वित करने के लिए कैसे करें IOS एप्लिकेशन (AFNetworking 2, AFURLSessionManager का उपयोग करके) विकसित कर रहा हूं, जहां मुझे एक एपीआई के साथ बातचीत करना है जिसे मैं नियंत्रित नहीं करता (जो सिम्फनी PHP का उपयोग कर रहा है फ्रेमवर्क अगर इससे कोई फर्क पड़ता है)।आईओएस ऐप - AFNetworking 2
समस्या यह है: उपयोगकर्ता का खाता है। ऐप के पहले लॉन्च पर, उपयोगकर्ता को फॉर्म-आधारित लॉगिन स्क्रीन मिलती है। वे लॉग इन करते हैं, फिर सत्र कुकी प्राप्त करते हैं। कुकी 30 मिनट में समाप्त हो जाती है। यह क्लाइंट द्वारा किए गए हर कॉल पर खुद को नवीनीकृत कर देगा। हालांकि, अगर ऐप को पुनरारंभ किया जाता है तो कुकी हटा दी जाती है और यदि ऐप 30 मिनट से अधिक के लिए निष्क्रिय है, तो कुकी अमान्य हो जाएगी।
मुझे यहां कई कठिनाइयां हैं। सबसे पहले, मुझे लॉगिन कॉल को पारदर्शी रूप से करने की आवश्यकता है, इसलिए उपयोगकर्ता को फिर से लॉगिन करने की आवश्यकता नहीं है। इसलिए मुझे त्रुटि प्रतिक्रिया मिलती है और मैं लॉगिन अनुरोध करता हूं और सफलता पर मैं मूल अनुरोध को रीमेक करता हूं। अब समस्या यह है कि कई एक साथ अनुरोध हो सकते हैं, और जोड़ी मोबाइल नेटवर्क कनेक्शन की अविश्वसनीय प्रकृति के साथ। तो इस तर्क के साथ क्या होता है कई लॉग इन और रीट्रीज़ और कई अतिरिक्त कोड और त्रुटि प्रबंधन के दुःस्वप्न की तरह लगता है।
मेरा समाधान अब तक है: अनुरोध करें। अगर मुझे अनधिकृत त्रुटि प्रतिक्रिया मिलती है, तो एक पुनः प्रयास कतार (जिसे मैं स्वयं प्रबंधित करता हूं) में अनुरोध जोड़ें, लॉगिन ध्वज सेट करें, और लॉगिन अनुरोध करें। प्रगति पर लॉगिन होने पर यह देखने के लिए पहले कोई भी नया अनुरोध लॉगिन फ्लैग की जांच करता है। यदि ऐसा है, तो वे सीधे पुनः प्रयास कतार में जाते हैं। जब लॉगिन अनुरोध पूरा हो जाता है, तो मैं पुनः प्रयास कतार के माध्यम से जाता हूं और सभी कतारबद्ध अनुरोध करता हूं।
अभी तक, यह बहुत अच्छी तरह से काम कर रहा प्रतीत होता है। लेकिन, मुझे यह घबराहट महसूस हो रही है कि एक बेहतर तरीका है। क्या इस तरह की स्थिति से निपटने के लिए कोई अंतर्निहित तंत्र नहीं है? यह उपयोगकर्ता प्रमाणीकरण को संभालने के लिए एक आम तरीका प्रतीत होता है, लेकिन मुझे AFNetworking में इससे निपटने के तरीके के बारे में कोई दस्तावेज नहीं मिल रहा है। वे बेसिक और डाइजेस्ट ऑथ को कवर करते हैं लेकिन इस फॉर्म-आधारित सत्र कुकी ऑथ के बारे में कुछ भी नहीं। यह पहली बार है जब मुझे इससे निपटना होगा और मैं विश्वास नहीं कर सकता कि किसी और के पास यह वही समस्या नहीं है। कोई विचार?
एक ही समस्या/प्रश्न की तरह की कोशिश, मैं AFNetworking में "दोबारा लॉगिन" ब्लॉक का एक प्रकार है करने के लिए के लिए अच्छा लगेगा संचालन प्रबंधक या कुछ। – StijnSpijker
यह उपयोगी हो सकता है - http://stackoverflow.com/a/24778719/900024 –
मैं इसे जांचूंगा प्रैटिक यह प्रतीत होता है – d370urn3ur