2013-01-22 8 views
11

मैं जहाँ उपयोगकर्ताओं को अपने स्वयं के यूआरएल है एक आवेदन के विकास कर रहा हूँ, और वे गूगल एपीआई का उपयोग करने की जरूरत है - जैसेरीडायरेक्ट यूआरआई की मनमानी राशि से कैसे निपटें?

  • www.example.com/johndoe/google/login
  • अलग रीडायरेक्ट यूआरआई के साथ निश्चित रूप से,
  • www.example.com/foobar/google/login

तो सबसे पहले मैंने सोचा कि मैं बस वाइल्डकार्ड (www.example.com/*/google/login) का उपयोग करके इस समस्या को हल कर सकता है, लेकिन यह दुर्भाग्य नहीं करता है उस तरह से काम नहीं करते हैं। तब मैंने पर्ल में एक साधारण प्रॉक्सी कोड करना शुरू किया, लेकिन मुझे यकीन नहीं है कि यह काम करेगा और हम समय से बाहर चल रहे हैं। स्थिति से निपटने का सबसे अच्छा तरीका क्या है? मैंने पंजीकरण हैंडलर से कंसोल में एक नया रीडायरेक्ट यूआरआई जोड़ने के बारे में सोचा, लेकिन मुझे कोई रास्ता नहीं मिला कि सर्वर ऐसा कर सकता है।

+0

पर http://stackoverflow.com/questions/7722062/google-oauth2-redirect-uri-with-several-parameters धन्यवाद जवाब मिलते हैं! – Kiran

उत्तर

14

वाइल्डकार्ड Google OAuth2 यूआरआई को पुनर्निर्देशित करने में समर्थित नहीं हैं। मुझे लगता है कि एकमात्र रीडायरेक्ट यूआरआई का उपयोग करना सबसे अच्छा है, और राज्य पैरामीटर में उपयोगकर्ता की जानकारी में पास होना है। जवाब में राज्य पैरामीटर आपको वापस कर दिया गया है। फिर, जब आपको प्राधिकरण कोड/टोकन प्राप्त होते हैं, तो आप राज्य पैरामीटर देख सकते हैं और उचित प्रतिक्रिया को संभाल सकते हैं (उदा।, अपने उपयोगकर्ता-विशिष्ट URL पर रीडायरेक्ट करें)।

This answer में अधिक जानकारी है।

+1

हम्म और मैं प्रतिक्रिया कैसे संभाल सकता हूं? ऐसा लगता है कि वहां "राज्य" पैरामीटर नहीं है। या मैं कोड प्राप्त करने के बाद किसी भी पुनर्निर्देशन यूआरआई का उपयोग कर सकते हैं? एक वास्तविक एपीआई कॉल करने के बारे में कैसे? अगर मेरे पास पहुंच टोकन है, तो क्या मैं इसे कहीं से भी उपयोग कर सकता हूं या सीमाएं क्या हैं? – r1pp3rj4ck

+2

जब आप अनुरोध तैयार करते हैं तो आप राज्य पैरामीटर में पास करते हैं। उदाहरण के लिए, आप वहां उपयोगकर्ता नाम शामिल कर सकते हैं। प्राधिकरण कोड प्राप्त करने के बाद, और इसे एक्सेस/रीफ्रेश टोकन के लिए एक्सचेंज करने के बाद, आपके पास उपयोगकर्ता नाम के साथ आबादी वाले राज्य पैरामीटर के साथ एक वैध पहुंच टोकन होगा। इसके साथ क्या करना है आपके आवेदन पर निर्भर है। एक्सेस टोकन पर एक प्रमुख सीमा यह है कि यह कम रहता है (आप प्रतिक्रिया में expires_in पैरामीटर देख सकते हैं, मुझे लगता है कि यह 3600 सेकेंड है)। इसलिए, आपको समय-समय पर पहुंच टोकन के लिए अपने लंबे समय तक रहने वाले रीफ्रेश टोकन का आदान-प्रदान करना होगा। – vlatko

+0

धन्यवाद! असल में, मैंने आपकी टिप्पणी का जवाब देने से पहले पूरी चीज हल की, लेकिन यह अभी भी कुछ चीजों को साफ़ करता है। – r1pp3rj4ck

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