मैं एक क्रॉस प्लेटफॉर्म मोबाइल एप्लिकेशन (ज़ैमरियन टूल, मोनो टच/मोनोडायड का उपयोग करके) का निर्माण कर रहा हूं। मैं प्रमाणीकरण वर्कफ़्लो के माध्यम से काम करने की कोशिश कर रहा हूं और एक ठोकर खा रहा हूं। मैंने एक स्पष्ट उत्तर के लिए पूरी तरह से खोज की है और अभी तक इसे ढूंढना नहीं है।मोबाइल क्लाइंट से oAuth करने का "दाएं" तरीका
यहां मेरे वर्तमान सेटअप का एक अवलोकन है।
मेरे पास नोडज में निर्मित एक वेबसाइट है। मैं वेब साइट पर oAuth लॉगिन करने के लिए passport.js का उपयोग करता हूं। यह बहुत अच्छा काम करता है, उपयोगकर्ता ट्विटर या फेसबुक का उपयोग करके मेरी साइट पर लॉगिन कर सकते हैं।
अब मैं अपने मोबाइल क्लाइंट में यह लॉगिन लॉगिन कार्यक्षमता विस्तारित करना चाहता हूं।
मैं देख रहा हूँ 2 विकल्प
एम्बेड ऐप्लिकेशन आईडी और एप्लिकेशन गुप्त मोबाइल ग्राहकों में है और प्रत्यक्ष oAuth FB करने के लिए कॉल कर सकते हैं या ट्विटर
प्रॉक्सी oAuth के माध्यम से कॉल मोबाइल एप्लिकेशन से मेरी मौजूदा NodeJS वेब सर्वर
विकल्प 2 पसंदीदा तरीका (होने के लिए के रूप में यह करने के लिए "जहाज" होने से बचा जाता है प्रतीत होता है (सर्वर पर गुप्त कुंजी रखने) secre मोबाइल ऐप में टी)।
मेरे पास प्रॉक्सी दृष्टिकोण अधिकतर काम कर रहा है।
- मैं अपने मोबाइल क्लाइंट में एक WebView खोलने के लिए और
http://mysever/auth/twitter
- यह चलाता है पर यह बात अपने मौजूदा passport.js कोड के माध्यम से और ट्विटर प्रवेश पृष्ठ पर मोबाइल WebView से अधिक पुनर्निर्देश।
- उपयोगकर्ता तब डिवाइस पर ट्विटर वेबपृष्ठ पर अपने क्रेडिट दर्ज करता है।
- ट्विटर फिर मेरे ओथ कॉलबैक यूआरएल (जो मेरा नोडजेस वेब सर्वर है) को कॉल करता है।
- मेरा सर्वर और ट्विटर उपयोगकर्ता प्रोफाइल जानकारी प्राप्त करने के चौथे हैंडशेक को पीछे रखता है (जैसा कि मैं इसे समझता हूं, यह इस दृष्टिकोण की कुंजी है, मेरा सर्वर और ट्विटर हैंडशेक को संभालने के लिए, मोबाइल क्लाइंट को नहीं करना है कुछ भी करने या इस प्रक्रिया)
यहाँ मेरी समस्या है के दौरान किसी भी टोकन पारित:
यह इस अंतिम चरण है कि मुझे स्टंप है। एक बार हाथ मिलाना मेरे सर्वर पर पूरा हो गया है मैं उपयोगकर्ता जानकारी नहीं है मैं सर्वर पर की जरूरत है और मोबाइल ग्राहक आवेदन करने के लिए इसे वापस भेजने की जरूरत है
मैं WebView नियंत्रण हड़पने के लिए में किसी भी तरह से समझ नहीं प्रतिक्रिया वस्तु और एक कुकी, या हेडर मान (उदाहरण के लिए) पकड़ो (यह एंड्रॉइड और आईओएस के लिए सच लगता है)। मुझे नहीं लगता कि यह मंच विशिष्ट है। मुझे लगता है कि मैं कुछ ऐसा करने की कोशिश कर रहा हूं कि मोबाइल प्लेटफार्मों में एक वेबव्यू विजेट बस suport नहीं है। यह मुझे लगता है कि मुझे कुछ याद आ रही है।
केवल एक चीज मैं पता लगा है मेरे वेब सर्वर "redirect" एक नकली यूआरएल क्वेरी स्ट्रिंग में उपयोगकर्ता जानकारी है कि करने के लिए मोबाइल ग्राहक ब्राउज़र है। Myapp की तरह कुछ: // info? Userid = 1234
फिर मोबाइल ऐप में मैं यूआरएल लोडिंग को हाइजैक कर सकता हूं और इस यूआरएल को पकड़ सकता हूं और मुझे आवश्यक डेटा प्राप्त कर सकता है। मैं फिर इस userinfo को छीन सकता हूं, वेबव्यू नियंत्रण को बंद कर सकता हूं और अपने मोबाइल एप्लिकेशन में मूल स्क्रीन पर जा सकता हूं और उपयोगकर्ता को पहचानने के साधन के रूप में मेरे नोडजेस सर्वर पर किसी भी बाद की आरईएसटी कॉल में userinfo उपयोगकर्ता को जोड़ सकता हूं।
यह कई कारणों से बड़े पैमाने पर क्लिगी है। इनमें से सबसे बड़ा यह है कि यूआरएल तार को अनएन्क्रिप्टेड तार पर भेजा जाता है और इसमें सभी डेटा सादे पाठ में होते हैं।
वेब सर्वर से डेटा को मोबाइल क्लाइंट पर वापस लाने का बेहतर तरीका होना चाहिए?
या क्या मैं यह सब गलत कर रहा हूं?
क्या दृष्टिकोण आप अंततः तय किया था के साथ काम कर रहे हैं? मैं आपके विकल्प 2 आदर्शवादी दृष्टिकोण के साथ एक ही दुविधा में फंस गया हूं। –
ईमानदारी से, मुझे कभी भी एक समाधान नहीं मिला जो अच्छी तरह से काम करता था। आम तौर पर स्वीकार की गई चीज़ मोबाइल ऐप में रहस्य को शिप करना प्रतीत होता है। लोग इसे ऐप में सेंकना प्रतीत करते हैं और उससे परे परवाह नहीं करते हैं। –
कोई और सिर्फ ओएथ की तरह महसूस कर रहा है व्याख्या और आधा arsed कार्यान्वयन की एक पूरी गड़बड़ है? – Jammer