2012-07-12 16 views
7

गूगल OAuth2 क्लाइंट hereगूगल OAuth2 कमांड लाइन उदाहरण

मैं completelly OAuth2 में नया हूँ और मैं इससे पहले कि मैं अपने आवेदन के साथ OAuth2 एकीकृत करने के लिए ले जाने के इस उदाहरण काम कर पाने के लिए करना चाहते हैं का एक उदाहरण है। क्या मैंने किया है है निम्नलिखित: python moderator.py :

  1. जांच एप्लिकेशन
  2. जाओ क्लाइंट आईडी और क्लाइंट सीक्रेट
  3. कॉन्फ़िगर client_secrets.json में उन मूल्यों
  4. परीक्षण चलाएं एप्लिकेशन पंजीकृत

    एप्लिकेशन एक ब्राउज़र खोलता है, जहां मैं (उपयोगकर्ता के रूप में) अपने खाते तक पहुंचने के लिए एप्लिकेशन को अधिकृत कर सकता हूं। लेकिन गूगल इस (400 गलत अनुरोध) की तरह शिकायत कर रहा है:

    Error: redirect_uri_mismatch 
    The redirect URI in the request: http://localhost:8080/ did not match a registered redirect URI 
    Learn more 
    Request Details 
    from_login=1 
    scope=https://www.googleapis.com/auth/moderator 
    response_type=code 
    access_type=offline 
    redirect_uri=http://localhost:8080/ 
    approval_prompt=auto 
    as=-xxxxxxxxxxxxx 
    pli=1 
    client_id=xxxxxxxxxxx.apps.googleusercontent.com 
    authuser=0 
    hl=en 
    

    मैं स्थानीय होस्ट लगता है: 8080 moderator.py द्वारा शुरू किया एक आंतरिक वेब सर्वर से आ रहा है। मेरा सवाल है: क्या किसी ने काम करने के लिए यह उदाहरण प्राप्त किया है? मुझे अन्य घटक क्या चाहिए (अपाचे कॉन्फ़िगरेशन, डीएनएस, ...)

    मैं ओएथ 2 के साथ बहुत उलझन में हूं और किसी भी मदद की सराहना की जाएगी।

उत्तर

0

ओएथ 2.0 में, redirect_uri पैरामीटर आमतौर पर प्रदाता के साथ पंजीकृत होता है। प्रदाता को https-only redirect_uri भी लागू करना चाहिए। क्योंकि मैं भी OAuth (और यहां तक ​​कि अजगर) करने के लिए बहुत नया हूँ https://code.google.com/apis/console/?pli=1#access

+3

मैं पहले से ही Google API कंसोल में अपने परीक्षण ऐप्लिकेशन पंजीकृत किया है, लेकिन मैं कमांड लाइन से आवेदन चला रहा हूँ (यह "कमांड लाइन उदाहरण" कहा जाता है)। मेरे पास कोई यूआरआई नहीं है जिसे मैं रीडायरेक्ट कर सकता हूं। प्रयोक्ता डेटा तक पहुंचने के लिए उपयोगकर्ता को मेरे एप्लिकेशन को अधिकृत करने में सक्षम होने के लिए मुझे यह उदाहरण कहां या कैसे चलाने की आवश्यकता है। ओएथ 2 कैसे काम कर रहा है यह समझने के लिए यह एक साधारण उदाहरण है, लेकिन मैं इसे चलाने में असमर्थ हूं। – dangonfast

2

सबसे पहले, माफ करना अगर मेरा उत्तर बहुत ही सटीक नहीं है ...:

आप गूगल के साथ यहां redirect_uri रजिस्टर करने की आवश्यकता और यह भी खेद है कि अगर यह बहुत देर हो चुकी है, तो मैं आमतौर पर यहां तक ​​पहुंच नहीं पाता हूं। मैं कोड का एक टुकड़ा है https://developers.google.com/accounts/docs/OAuth2InstalledApp#choosingredirecturi

Here: REDIRECT_URI = 'कलश: IETF: डब्ल्यू जी: OAuth: 2.0: OOB'

चेक इस

आप (मेरे लिए काम किया) यह उपयोग करने की कोशिश है एक पूर्ण OAuth प्रवाह काम कर रहा है।

+0

यह कंसोल ऐप्स के लिए सही जवाब है –

0

शायद Google के साथ अपने बाहरी आईपी को पंजीकृत करने का प्रयास करें (आपके राउटर पर कुछ बंदरगाह की आवश्यकता हो सकती है)? यदि यह विफल हो जाता है, तो शायद आप पाइथन के सरल सर्वर का उपयोग कर सकते हैं, अपना आईपी पंजीकृत कर सकते हैं और इस सर्वर को रीडायरेक्ट को संभालने के लिए प्राप्त कर सकते हैं।

0

आपका redirect_uri 'http://localhost:8080/' पर सेट है, क्योंकि आप एक डिफ़ॉल्ट पारित झंडे run_flow लिए पैरामीटर (प्रवाह, भंडारण, झंडे)

यदि आप के लिए परिभाषित देखो (मैं यह कैसे का वर्णन करने के पता नहीं है) run_flow() फ़ंक्शन आप इस मिलेगा:

It presumes it is run from a command-line application and supports the 
following flags: 

    ``--auth_host_name`` (string, default: ``localhost``) 
     Host name to use when running a local web server to handle 
     redirects during OAuth authorization. 

    ``--auth_host_port`` (integer, default: ``[8080, 8090]``) 
     Port to use when running a local web server to handle redirects 
     during OAuth authorization. Repeat this option to specify a list 
     of values. 

    ``--[no]auth_local_webserver`` (boolean, default: ``True``) 
     Run a local web server to handle redirects during OAuth 
     authorization.