एक अनुप्रेषित URI क्या है? यह OAuth2.0 के लिए iOS ऐप पर कैसे लागू होता है?


184

यहां शुरुआती प्रोग्रामर, कृपया अज्ञानता और स्पष्टीकरण को क्षमा करें :)

मैंने एक निश्चित OAuth 2.0 सेवा के लिए ट्यूटोरियल पढ़ने की कोशिश की है, लेकिन मुझे यह रीडायरेक्ट URI समझ में नहीं आया ... मेरे विशेष संदर्भ में, मान लीजिए कि मैं एक iPhone ऐप बनाने की कोशिश कर रहा हूं जो OAuth 2.0 का उपयोग किसी सेवा के लिए करता है । मेरे पास एक ऐप आईडी है जो कि जेनरेट की गई थी, लेकिन मुझे एपीआई कुंजी बनाने के लिए कुछ प्रकार के रीडायरेक्ट URI प्रदान करने की आवश्यकता है।

क्या यह एक ऐसा URL है जिसे मैं स्वयं कहीं होस्ट करने वाला हूँ ?? जैसा कि नाम से पता चलता है, मुझे लगता है कि रीडायरेक्ट URL को किसी व्यक्ति को "रीडायरेक्ट" करना है। मेरा एकमात्र अनुमान यह है कि सेवा में लॉग इन करने के बाद यह एक URL है जिसे उपयोगकर्ता पुनः निर्देशित करता है।

हालाँकि, भले ही वह धारणा सही हो, लेकिन मुझे एक बात समझ में नहीं आती है - उपयोगकर्ता लॉगिन के लिए ब्राउज़र में भेजने के बाद मेरा ऐप फिर से कैसे खोला जा सकता है?

जवाबों:


193

इसे पढ़ें:

http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work

या और भी सरल लेकिन त्वरित स्पष्टीकरण:

http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html

रीडायरेक्ट URI ऐप का कॉलबैक एंट्री पॉइंट है। इस बारे में सोचें कि फेसबुक के लिए OAuth कैसे काम करता है - आखिरकार उपयोगकर्ता अनुमतियों को स्वीकार करता है, "कुछ" को ऐप को वापस पाने के लिए फेसबुक द्वारा कॉल करना होगा, और यह कि "कुछ" यूआरआई पुनर्निर्देशित है। इसके अलावा, रीडायरेक्ट URI ऐप के शुरुआती एंट्री पॉइंट से अलग होना चाहिए।

इस पहेली का दूसरा मुख्य बिंदु यह है कि आप अपने ऐप को किसी वेबव्यू को दिए गए URL से लॉन्च कर सकते हैं । ऐसा करने के लिए, मैंने यहाँ पर गाइड का अनुसरण किया:

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

तथा

http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/

नोट: उन अंतिम 2 लिंक पर, "http: //" मोबाइल सफारी खोलने में काम करता है लेकिन "tel: //" सिम्युलेटर में काम नहीं करता है

पहले ऐप में, मैं कॉल करता हूं

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];

अपने दूसरे ऐप में, मैं URL स्कीम के रूप में अपनी कंपनी के साथ "सेकंडऐप" (और "सेकंडएप: //") को URL स्कीम के नाम से रजिस्टर करता हूं।


1
तो, आपको रीडायरेक्ट_यूरी में दी गई अपनी खुद की वेब साइट को सेट करने की आवश्यकता है, क्या यह सही है?
ह्यूगी

1
@ आईओएस ऐप के संदर्भ में - नहीं, सौभाग्य से, आपको अपनी वेबसाइट की आवश्यकता नहीं है। आपको बस यह महसूस करने की ज़रूरत है कि आपका iOS ऐप वेब ब्राउज़र को दिए गए URL से खोला जा सकता है। पढ़ें: iosdevelopertips.com/cocoa/…
डेविड टी।

1
@Nazerke यह शायद आपके लिए पहले से ही ": //" जोड़ता है। इसलिए आपको केवल नाम की योजना बनाने की आवश्यकता है
डेविड टी।

1
कोई pls इस जवाब को ठीक करे - आर्किटेक्चर-
लियो

2
हाय @ दाविद। बहुत बढ़िया जवाब। वे केवल चिंता करते हैं, और आशा करते हैं कि आप मुझे बचा सकते हैं, यह है कि यूआरआई की योजनाओं को कैसे कॉन्फ़िगर किया जाए जो उपयोग करने के लिए मजबूर हों http://, जैसे [YouTube, Instagram, LinkedIn]? मैंने उदाहरण के लिए http://localhost/oauth2callbackपुनर्निर्देशित करने की कोशिश की , और स्कीम http, localhost या oauth2callback लेकिन उनमें से गैर काम
ताल सियोन

9

रीडायरेक्ट किया गया uri वह स्थान है जहां उपयोगकर्ता को आपके ऐप में सफलतापूर्वक लॉगिन करने के बाद रीडायरेक्ट किया जाएगा। उदाहरण के लिए फेसबुक में अपने ऐप के लिए टोकन प्राप्त करने के लिए आपको यूआरआई को पुनर्निर्देशित करने की आवश्यकता है जो कि केवल कुछ ऐप डोमेन नहीं है जो आपके फेसबुक ऐप को बनाते समय आपका प्रदान करता है।


9

OAuth 2.0 खेल के मैदान पर एक नज़र डालें। आपको प्रोटोकॉल का अवलोकन मिलेगा। यह मूल रूप से एक पर्यावरण (किसी भी ऐप की तरह) है जो आपको प्रोटोकॉल में शामिल चरणों को दिखाता है।

https://developers.google.com/oauthplayground/


2

यदि आप फेसबुक एसडीके का उपयोग कर रहे हैं, तो आपको फेसबुक के ऐप प्रबंधन पेज पर यूआरआई के लिए कुछ भी दर्ज करने के लिए खुद को परेशान करने की आवश्यकता नहीं है। बस अपने iOS ऐप के लिए एक URL स्कीम सेट करें। आपके ऐप की URL योजना का एक मान होना चाहिए "fbxxxxxxxxxxx" जहां xxxxxxxxxxx आपकी ऐप आईडी है जैसा कि फेसबुक पर पहचाना गया है। अपने iOS ऐप के लिए URL स्कीम सेटअप करने के लिए, अपनी ऐप सेटिंग की जानकारी टैब पर जाएं और URL टाइप करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.