में रेलवे/डिवाइस प्रमाणीकरण का खुलासा मेरे पास रेल 3.1 एप्लिकेशन है जो ईमेल, पासवर्ड इत्यादि के साथ एक साधारण उपयोगकर्ता मॉडल के साथ प्रमाणीकरण के लिए देवता का उपयोग करता है। मुझे एक आईफोन एप्लिकेशन से प्रमाणित करने में सक्षम होना चाहिए। मैं इस कार्यक्षमता का पर्दाफाश कैसे करूं? व्यापक उत्तर ठीक हैं क्योंकि मुझे यकीन नहीं है कि मेरे विकल्प क्या हैं।आईओएस अनुप्रयोग
उत्तर
सबसे तेज़ तरीका http_authenticatable
को सक्षम करना होगा और HTTP बेसिक एथ के माध्यम से उपयोगकर्ता नाम और पासवर्ड को पास करना होगा। हालांकि यह सबसे आसान तरीका है, इसका मतलब है कि आपको सादे टेक्स्ट में उपयोगकर्ता पासवर्ड स्टोर करना होगा और इसे आपके द्वारा किए गए हर अनुरोध के साथ भेजना होगा।
एक बेहतर विकल्प टोकन प्रमाणीकरण है, आप इसे पैरामीटर या HTTP बेसिक ऑथ के माध्यम से पारित कर सकते हैं (इस मामले में आप "एक्स" और उपयोगकर्ता नाम पर टोकन सेट कर सकते हैं)। इसका लाभ यह है कि आप टोकन प्राप्त करने के लिए शुरुआत में उपयोगकर्ता नाम/पासवर्ड का उपयोग कर सकते हैं और उसके बाद किसी और प्रमाणीकरण के लिए इसका उपयोग कर सकते हैं।
न्यूनतम मात्रा कोड के साथ टोकन प्रमाणीकरण करने का सबसे आसान तरीका डेविस में HTTP प्रमाणीकरण को सक्षम करना होगा और एक नया नियंत्रक स्थापित करना होगा जिसके लिए उपयोगकर्ता लॉग इन होना आवश्यक है और यह सब reset_authentication_token
का परिणाम आउटपुट है। एक बार आपके पास टोकन हो जाने के बाद आप उन्हें किसी भी भविष्य में HTTP प्रमाणीकरण अनुरोधों को लॉग इन करने के लिए पास कर देंगे।
यदि आप वेबसाइट से कोशिश करते हैं और लॉग इन करते हैं तो http_authenticatable को सक्षम करते हुए भयंकर उपयोगकर्ता नाम/पासवर्ड फ़ील्ड को छोड़ दें? मुझे अभी भी उपयोगकर्ताओं को वेबसाइट के माध्यम से लॉगिन करने और एक स्वच्छ इंटरफ़ेस के माध्यम से लॉग इन करने की आवश्यकता है। –
@Zachary Anker आपके उत्तर के लिए धन्यवाद। क्या आप पुष्टि कर सकते हैं कि मैं इस अधिकार को समझ रहा हूं ... एक डिवाइस http://somesite.com/users/sign_in को हिट करेगा, उपयोगकर्ता नाम और पासवर्ड को POST अनुरोध के फॉर्म पैरा के रूप में पास करेगा। रेल तब इन विवरणों की जांच करेंगे और यदि सही टोकन वापस कर देगा। डिवाइस तब उस टोकन को स्टोर करेगा और भविष्य में संचार में इसका इस्तेमाल करेगा। तो रेल से टोकन कहां मिलता है? क्या यह प्रत्येक उपयोगकर्ता के लिए एक अद्वितीय टोकन उत्पन्न करता है। टोकन की समय सीमा समाप्त हो जाती है? – Undistraction
@Wayfarer यह नहीं होना चाहिए। जब तक यह HTML जैसे नेविगेशन प्रारूप है, तब तक इसे HTTP प्रमाणीकरण संवाद पॉप अप नहीं करना चाहिए। यदि आप इसे कभी भी दिखाना नहीं चाहते थे, तो आप पासवर्ड को कार्यान्वित कर सकते हैं जो नियंत्रक में स्वयं को जांचता है जो प्रमाणीकरण टोकन देता है। –
सभी डिवाइसेज नियंत्रक जेसन और एक्सएमएल का जवाब देते हैं, एक आरईएसटी इंटरफेस को काफी संभव बनाते हैं – zsquare
ईमानदारी से, मुझे एक ही समस्या है। मैं आरईएसटी समझता हूं, और मेरा एपीआई अच्छी तरह से काम कर रहा है। लेकिन मैं आईओएस डिवाइस से लॉग इन करने की अवधारणा को समझ नहीं सकता। (मैं एक फ्रेमवर्क के रूप में RestKit का उपयोग कर रहा हूँ, अगर यह मदद करता है)। क्या कोई आईओएस को रेल ऐप के साथ प्रमाणित करने के लिए आवश्यक कदमों के माध्यम से जा सकता है, और फिर जानकारी प्राप्त करने के लिए लगातार आरईएसटी कॉल को कॉल कर सकता है? आप सत्र कैसे स्टोर करते हैं? क्या आप? क्या आपको कभी भी कॉल के साथ उपयोगकर्ता क्रेडेंशियल में पास करने की आवश्यकता है? क्या आप किसी प्रकार के टोकन का उपयोग कर सकते हैं? जानकारी प्राप्त करने के लिए आप कॉल को कैसे प्रारूपित करते हैं? मदद भी मेरे लिए बहुत अच्छा होगा !! –
@Wayfarer बिल्कुल। मुझे लगता है कि वेब सेवा को सफलतापूर्वक प्रमाणीकृत करने के बाद डिवाइस को किसी प्रकार के टोकन को पास करने की आवश्यकता है, जिसे डिवाइस किसी भी संचार के साथ स्वयं पहचानने के लिए उपयोग कर सकता है, लेकिन मुझे यकीन नहीं है कि यह व्यावहारिक शर्तों में कैसे काम करेगा। स्पष्ट रूप से उपयोगकर्ता मॉडल प्रमाणीकरण के बाद साझा किए गए प्रत्येक उपयोगकर्ता के लिए किसी प्रकार का अद्वितीय टोकन स्टोर कर सकता है, लेकिन मुझे इसकी सेवा करने के यांत्रिकी के बारे में निश्चित नहीं है। – Undistraction