मोबाइल और डेस्कटॉप ऐप्लिकेशन के लिए OAuth 2.0

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

यह दस्तावेज़ बताता है कि फ़ोन, टैबलेट और कंप्यूटर, Google के OAuth 2.0 एंडपॉइंट का इस्तेमाल करके Google API.

OAuth 2.0 की मदद से, उपयोगकर्ता किसी ऐप्लिकेशन के साथ चुनिंदा डेटा शेयर कर सकते हैं. इस दौरान उपयोगकर्ता नाम, पासवर्ड, और अन्य जानकारी निजी रखें. उदाहरण के लिए, कोई ऐप्लिकेशन अनुमति पाने के लिए OAuth 2.0 का इस्तेमाल कर सकता है उपयोगकर्ताओं को अपने Google Drive में फ़ाइलें सेव करने के लिए बढ़ावा दें.

इंस्टॉल किए गए ऐप्लिकेशन, अलग-अलग डिवाइसों के हिसाब से बांटे जाते हैं. इसके लिए, माना जाता है कि ये ऐप्लिकेशन राज़ नहीं रख सकते. वे Google API को तब ऐक्सेस कर सकते हैं, जब उपयोगकर्ता ऐप्लिकेशन में मौजूद हो या जब ऐप बैकग्राउंड में चल रहा है.

अनुमति देने का यह फ़्लो, इसके लिए इस्तेमाल किए जाने वाले फ़्लो जैसा ही है वेब सर्वर ऐप्लिकेशन के मालिक हैं. मुख्य अंतर यह है इंस्टॉल किए गए ऐप्लिकेशन को सिस्टम ब्राउज़र खोलना होगा और हैंडल करने के लिए लोकल रीडायरेक्ट यूआरआई उपलब्ध कराना होगा Google के ऑथराइज़ेशन सर्वर से मिले रिस्पॉन्स का पता लगाता है.

विकल्प

मोबाइल ऐप्लिकेशन के लिए, हो सकता है कि आप 'Google साइन इन' का इस्तेमाल इन कामों के लिए करना चाहें Android या iOS. Google साइन इन क्लाइंट लाइब्रेरी की मदद से पुष्टि करने और उपयोगकर्ता की अनुमति लेने की प्रक्रिया को मैनेज किया जाता है. साथ ही, इन तरीकों से यहां बताए गए निचले लेवल के प्रोटोकॉल से लागू करें.

उन डिवाइस पर चल रहे ऐप्लिकेशन के लिए जो सिस्टम ब्राउज़र के साथ काम नहीं करते या जिनमें सीमित इनपुट होता है जैसी क्षमताएं, जैसे टीवी, गेम कंसोल, कैमरा, या प्रिंटर, देखें टीवी और डिवाइस या टीवी और सीमित इनपुट डिवाइसों से साइन इन करें.

लाइब्रेरी और सैंपल

OAuth 2.0 फ़्लो को लागू करने में आपकी मदद करने के लिए, हम इन लाइब्रेरी और सैंपल का सुझाव देते हैं इस दस्तावेज़ में बताया गया है:

ज़रूरी शर्तें

अपने प्रोजेक्ट के लिए एपीआई चालू करना

अगर कोई ऐप्लिकेशन Google API को कॉल करता है, तो उसे API Console.

अपने प्रोजेक्ट के लिए एपीआई चालू करने के लिए:

  1. Open the API Library Google API Console.
  2. If prompted, select a project, or create a new one.
  3. API Library में, प्रॉडक्ट के हिसाब से ग्रुप किए गए सभी उपलब्ध एपीआई की सूची दी गई है परिवार और लोकप्रियता. आपको जिस एपीआई को चालू करना है अगर वह सूची में नहीं दिख रहा है, तो खोजने के लिए खोज का इस्तेमाल करें इसे ढूंढें या इसके प्रॉडक्ट फ़ैमिली में सभी देखें पर क्लिक करें.
  4. वह एपीआई चुनें जिसे आपको चालू करना है. इसके बाद, चालू करें बटन पर क्लिक करें.
  5. If prompted, enable billing.
  6. If prompted, read and accept the API's Terms of Service.

अनुमति देने वाले क्रेडेंशियल बनाएं

Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के पास, अनुमति देने वाले क्रेडेंशियल होने चाहिए जो Google के OAuth 2.0 सर्वर पर ऐप्लिकेशन की पहचान करती है. यहां दिए गए चरण, अपने प्रोजेक्ट के लिए क्रेडेंशियल बनाएं. इसके बाद, आपके ऐप्लिकेशन एपीआई ऐक्सेस करने के लिए क्रेडेंशियल का इस्तेमाल कर सकते हैं जिसे आपने उस प्रोजेक्ट के लिए चालू किया है.

  1. Go to the Credentials page.
  2. क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी.
  3. यहां दिए गए सेक्शन में, Google के क्लाइंट टाइप और रीडायरेक्ट करने के तरीकों के बारे में बताया गया है ऑथराइज़ेशन सर्वर काम करता है. अपने खाते के लिए सुझाया गया क्लाइंट टाइप चुनें ऐप्लिकेशन, अपने OAuth क्लाइंट को नाम दें, और फ़ॉर्म में अन्य फ़ील्ड को उचित.
Android
  1. Android ऐप्लिकेशन का टाइप चुनें.
  2. OAuth क्लाइंट के लिए कोई नाम डालें. यह नाम आपके प्रोजेक्ट के Credentials page की मदद से क्लाइंट की पहचान की जा सकती है.
  3. अपने Android ऐप्लिकेशन का पैकेज नाम डालें. यह वैल्यू इसमें तय की गई है <manifest> एलिमेंट का package एट्रिब्यूट शामिल नहीं करने चाहिए.
  4. ऐप्लिकेशन डिस्ट्रिब्यूशन का SHA-1 साइनिंग सर्टिफ़िकेट फ़िंगरप्रिंट डालें.
    • अगर आपका ऐप्लिकेशन Google Play की ऐप्लिकेशन साइनिंग, SHA-1 को कॉपी करें फ़िंगरप्रिंट की मदद से, Play Console के ऐप्लिकेशन साइनिंग पेज से साइन इन करें.
    • अगर अपने कीस्टोर और साइनिंग पासकोड खुद मैनेज करने हैं, तो keytool यूटिलिटी का इस्तेमाल करें इसमें Java का इस्तेमाल करके, सर्टिफ़िकेट की जानकारी को ऐसे फ़ॉर्मैट में प्रिंट किया जा सकता है जिसे कोई भी व्यक्ति आसानी से पढ़ सके. कॉपी करने के लिए इसके Certificate fingerprints सेक्शन में SHA1 वैल्यू keytool आउटपुट. यहां जाएं: इसमें अपने क्लाइंट की पुष्टि करना ज़्यादा जानकारी के लिए, Android के दस्तावेज़ के लिए Google API.
  5. (ज़रूरी नहीं) अपने Android के मालिकाना हक की पुष्टि करें का इस्तेमाल करें.
  6. बनाएं पर क्लिक करें.
iOS
  1. iOS ऐप्लिकेशन टाइप चुनें.
  2. OAuth क्लाइंट के लिए कोई नाम डालें. यह नाम आपके प्रोजेक्ट के Credentials page की मदद से क्लाइंट की पहचान की जा सकती है.
  3. अपने ऐप्लिकेशन के लिए बंडल आइडेंटिफ़ायर डालें. बंडल आईडी, CFBundleIdentifier कुंजी जोड़ना है. (info.plist). वैल्यू को सामान्य रूप से सामान्य पैनल या पैनल की क्षमताओं वाले पैनल Xcode प्रोजेक्ट एडिटर. बंडल आईडी, इसके सामान्य जानकारी सेक्शन में भी दिखाया जाता है ऐप्लिकेशन के लिए ऐप्लिकेशन की जानकारी वाले पेज Apple की App Store Connect साइट.
  4. (ज़रूरी नहीं)

    अगर आपका ऐप्लिकेशन Apple के App Store में पब्लिश हुआ है, तो उसका App Store आईडी डालें. स्टोर आईडी यह है हर Apple App Store यूआरएल में शामिल एक न्यूमेरिक स्ट्रिंग होती है.

    1. खोलें Apple App Store ऐप्लिकेशन iOS या iPadOS डिवाइस पर.
    2. अपना ऐप्लिकेशन खोजें.
    3. शेयर बटन (वर्ग और तीर ऊपर प्रतीक) का चयन करें.
    4. लिंक कॉपी करें चुनें.
    5. लिंक को टेक्स्ट एडिटर में चिपकाएं. ऐप स्टोर आईडी, यूआरएल का आखिरी हिस्सा होता है.

      उदाहरण: https://apps.apple.com/app/google/id284815942

  5. (ज़रूरी नहीं)

    अपना टीम आईडी डालें. यहां जाएं: अपना टीम आईडी ढूंढें इस बारे में ज़्यादा जानने के लिए, Apple Developer Account के दस्तावेज़ पढ़ें.

  6. बनाएं पर क्लिक करें.
UWP
  1. Universal Windows Platform ऐप्लिकेशन टाइप चुनें.
  2. OAuth क्लाइंट के लिए कोई नाम डालें. यह नाम आपके प्रोजेक्ट के Credentials page की मदद से क्लाइंट की पहचान की जा सकती है.
  3. अपने ऐप्लिकेशन का 12 वर्णों का Microsoft Store आईडी डालें. आपको यह वैल्यू यहां दिखेगी Microsoft Partner Center पूरी तरह कैसे ऐप्लिकेशन की पहचान पेज पर जाएं.
  4. बनाएं पर क्लिक करें.

यूडब्ल्यूपी ऐप्लिकेशन के लिए, कस्टम यूआरआई स्कीम 39 वर्णों से ज़्यादा लंबी नहीं हो सकती.

कस्टम यूआरआई स्कीम (Android, iOS, UWP)

कस्टम यूआरआई स्कीम, डीपलिंक करने का एक तरीका है. इसमें आपके ऐप्लिकेशन को खोलने के लिए, कस्टम-तय की गई स्कीम का इस्तेमाल किया जाता है.

Android पर कस्टम यूआरआई स्कीम का इस्तेमाल करने के विकल्प

इसका इस्तेमाल करें Android SDK टूल के लिए 'Google साइन-इन' सुविधा यह आपके ऐप्लिकेशन को सीधे OAuth 2.0 रिस्पॉन्स देता है. इससे, रीडायरेक्ट यूआरआई.

Android SDK टूल के लिए 'Google साइन-इन' पर माइग्रेट करने का तरीका

अगर फ़िलहाल, Android पर OAuth इंटिग्रेशन के लिए कस्टम स्कीम का इस्तेमाल किया जा रहा है, तो आपको Google साइन-इन के सुझाए गए तरीके का इस्तेमाल करने पर माइग्रेट करने के लिए, नीचे दी गई कार्रवाइयों को पूरा करें Android SDK टूल:

  1. 'Google साइन-इन' SDK टूल का इस्तेमाल करने के लिए, अपना कोड अपडेट करें.
  2. Google API कंसोल में कस्टम स्कीम के लिए सहायता बंद करें.

'Google साइन-इन Android SDK' पर माइग्रेट करने के लिए, यह तरीका अपनाएं:

  1. 'Google साइन-इन' Android SDK का इस्तेमाल करने के लिए, अपना कोड अपडेट करना:
    1. अपने कोड की जांच करके पता लगाएं कि आप कहां हैं Google के OAuth 2.0 सर्वर पर अनुरोध भेजना; अगर किसी कस्टम स्कीम का इस्तेमाल किया जा रहा है, तो आपका अनुरोध कुछ ऐसा दिखेगा:
        https://accounts.google.com/o/oauth2/v2/auth?
        scope=<SCOPES>&
        response_type=code&
        &state=<STATE>&
        redirect_uri=com.example.app:/oauth2redirect&
        client_id=<CLIENT_ID>
        
      com.example.app:/oauth2redirect, इसमें कस्टम स्कीम रीडायरेक्ट यूआरआई है ऊपर उदाहरण दिया गया है. ज़्यादा जानकारी के लिए, फ़ॉर्मैट के बारे में ज़्यादा जानकारी के लिए, redirect_uri पैरामीटर की परिभाषा कस्टम यूआरआई स्कीम की वैल्यू का इस्तेमाल करके.
    2. उन scope और client_id अनुरोध पैरामीटर को ध्यान में रखें जो आपको 'Google साइन-इन' SDK टूल को कॉन्फ़िगर करना होगा.
    3. फ़ॉलो करें अपने Android ऐप्लिकेशन में 'Google साइन इन' को इंटिग्रेट करना शुरू करें SDK टूल सेट अप करने के निर्देश. आप इसे छोड़ सकते हैं फिर से इस्तेमाल करने की तरह अपने बैकएंड सर्वर के OAuth 2.0 क्लाइंट आईडी का चरण पाएं पिछले चरण में मिला client_id.
    4. फ़ॉलो करें सर्वर-साइड एपीआई का ऐक्सेस चालू करना निर्देश. इसमें, ये चरण शामिल हैं:
      1. इस यूआरएल के लिए पुष्टि करने वाला कोड वापस पाने के लिए, getServerAuthCode तरीके का इस्तेमाल करें उन दायरों के बारे में बताएं जिनके लिए आप अनुमति का अनुरोध कर रहे हैं.
      2. अपने ऐप्लिकेशन के बैकएंड पर ऑथराइज़ेशन कोड भेजें, ताकि ऐक्सेस मिल सके और रीफ्रेश करें टोकन.
      3. उपयोगकर्ता की ओर से Google API को कॉल करने के लिए, वापस मिले ऐक्सेस टोकन का इस्तेमाल करें.
  2. Google API (एपीआई) कंसोल में कस्टम स्कीम के लिए सहायता बंद करें:
    1. अपने OAuth 2.0 क्रेडेंशियल लिस्ट करें और अपना Android क्लाइंट चुनें.
    2. बेहतर सेटिंग सेक्शन पर जाएं. इसके बाद, कस्टम यूआरआई स्कीम चालू करें चेकबॉक्स चुनें और सेव करें पर क्लिक करें कस्टम यूआरआई स्कीम इस्तेमाल करने की सुविधा बंद करें.
कस्टम यूआरआई स्कीम चालू करना
अगर सुझाया गया विकल्प आपके लिए काम नहीं करता है, तो आप अपने Android क्लाइंट के लिए, नीचे दिए गए निर्देशों का पालन करें:
  1. अपने OAuth 2.0 क्रेडेंशियल सूची और अपना Android क्लाइंट चुनें.
  2. बेहतर सेटिंग सेक्शन पर जाएं. इसके बाद, कस्टम यूआरआई स्कीम चालू करें चेकबॉक्स चुनें और इसे चालू करने के लिए सेव करें पर क्लिक करें कस्टम यूआरआई स्कीम से जुड़ी सहायता.
Chrome ऐप्लिकेशन पर कस्टम यूआरआई स्कीम का इस्तेमाल करने के विकल्प

इसका इस्तेमाल करें Chrome Identity API यह आपके ऐप्लिकेशन को सीधे OAuth 2.0 रिस्पॉन्स देता है. इससे, रीडायरेक्ट यूआरआई.

ऐप्लिकेशन के मालिकाना हक की पुष्टि करना (Android, Chrome)

ऐप्लिकेशन प्रतिरूपण के जोखिम को कम करने के लिए आप अपने ऐप्लिकेशन के स्वामित्व की पुष्टि कर सकते हैं.

Android

पुष्टि की प्रक्रिया पूरी करने के लिए, अपने Google Play डेवलपर खाते का इस्तेमाल किया जा सकता है अगर आपके पास कोई है और आपका ऐप्लिकेशन Google Play Console से हटा दिया जाएगा. नीचे दिए गए पुष्टि की प्रक्रिया को पूरा करने के लिए, ये शर्तें पूरी होनी चाहिए:

  • आपके पास Google Play Console में, Google Play Console में रजिस्टर किया गया एक ऐसा ऐप्लिकेशन होना चाहिए आप जिस Android OAuth क्लाइंट हैं उसके रूप में पैकेज नाम और SHA-1 साइनिंग प्रमाणपत्र फ़िंगरप्रिंट इसके लिए, पुष्टि की प्रक्रिया पूरी करें.
  • आपके पास एडमिन की अनुमति होनी चाहिए Google Play Console पर जाएं. ज़्यादा जानें Google Play Console में ऐक्सेस मैनेजमेंट के बारे में जानकारी.

Android क्लाइंट के ऐप्लिकेशन के मालिकाना हक की पुष्टि करें सेक्शन में, पुष्टि की प्रक्रिया पूरी करने के लिए, मालिकाना हक की पुष्टि करें बटन.

पुष्टि की प्रक्रिया पूरी होने के बाद, इसकी पुष्टि करने के लिए एक सूचना दिखाई जाएगी दो चरणों में पुष्टि की है. ऐसा न करने पर, गड़बड़ी का मैसेज दिखेगा.

पुष्टि न हो पाने की समस्या को ठीक करने के लिए, कृपया नीचे दिया गया तरीका अपनाएं:

  • पक्का करें कि जिस ऐप्लिकेशन की पुष्टि की जा रही है वह Google Play Console पर रजिस्टर किया गया ऐप्लिकेशन है.
  • पक्का करें कि आपके पास Google Play Console पर जाएं.
Chrome

पुष्टि की प्रक्रिया पूरी करने के लिए, आपको अपने Chrome वेब स्टोर डेवलपर खाते का इस्तेमाल करना होगा. पुष्टि की प्रक्रिया को पूरा करने के लिए, यहां दी गई शर्तें पूरी करना ज़रूरी है:

  • आपके पास Chrome वेब स्टोर डेवलपर डैशबोर्ड उसी आइटम आईडी का इस्तेमाल करें जिससे Chrome एक्सटेंशन OAuth क्लाइंट को पूरा किया जा रहा है पुष्टि करने के लिए.
  • Chrome वेब स्टोर आइटम के लिए आपको प्रकाशक होना चाहिए. ज़्यादा जानें 'Chrome वेब स्टोर डेवलपर डैशबोर्ड' में ऐक्सेस मैनेजमेंट के बारे में जानकारी देखें.

Chrome एक्सटेंशन क्लाइंट के ऐप्लिकेशन के मालिकाना हक की पुष्टि करें सेक्शन में, क्लिक करें पुष्टि की प्रक्रिया पूरी करने के लिए, मालिकाना हक की पुष्टि करें बटन.

ध्यान दें: कृपया पुष्टि की प्रक्रिया पूरी करने से पहले कुछ मिनट इंतज़ार करें आपके खाते का ऐक्सेस दे रहा है.

पुष्टि की प्रक्रिया पूरी होने के बाद, इसकी पुष्टि करने के लिए एक सूचना दिखाई जाएगी दो चरणों में पुष्टि की है. ऐसा न करने पर, गड़बड़ी का मैसेज दिखेगा.

पुष्टि न हो पाने की समस्या को ठीक करने के लिए, कृपया नीचे दिया गया तरीका अपनाएं:

  • पक्का करें कि Chrome वेब स्टोर डेवलपर डैशबोर्ड में एक पंजीकृत आइटम मौजूद है Chrome एक्सटेंशन OAuth क्लाइंट के आइटम आईडी से मेल खाना चाहिए, जिसके लिए आप पुष्टि कर रहे हैं.
  • पक्का करें कि आप ऐप्लिकेशन के पब्लिशर हैं. इसका मतलब है कि आपको निजी पब्लिशर होना चाहिए या ऐप्लिकेशन के ग्रुप पब्लिशर के सदस्य ने किया हो. ज़्यादा जानें 'Chrome वेब स्टोर डेवलपर डैशबोर्ड' में ऐक्सेस मैनेजमेंट के बारे में जानकारी देखें.
  • अगर आपने अभी-अभी ग्रुप पब्लिशर की सूची अपडेट की है, तो पुष्टि करें कि आपने ग्रुप पब्लिशर की सदस्यता ली हो सूची को Chrome वेब स्टोर डेवलपर डैशबोर्ड में सिंक किया जाता है. ज़्यादा जानें पब्लिशर की सदस्यता सूची को सिंक करने के बारे में जानकारी.

लूपबैक आईपी पता (macOS, Linux, Windows डेस्कटॉप)

इस URL का उपयोग करके प्राधिकरण कोड प्राप्त करने के लिए, आपका ऐप्लिकेशन स्थानीय वेब सर्वर पर उपलब्ध है. ऐसा कई प्लैटफ़ॉर्म पर मुमकिन है, लेकिन सभी पर नहीं. हालांकि, अगर आपका प्लैटफ़ॉर्म यह ऑथराइज़ेशन कोड पाने के लिए सुझाया गया तरीका है.

आपके ऐप्लिकेशन को अनुमति मिलने पर, सबसे सही तरीके से इस्तेमाल करने के लिए उसे इस तारीख तक जवाब देना चाहिए: ऐसा एचटीएमएल पेज दिखाना जो उपयोगकर्ता को ब्राउज़र बंद करने और आपके ऐप्लिकेशन पर वापस जाने का निर्देश देता हो.

इस्तेमाल के लिए सुझाया गया तरीका macOS, Linux, और Windows डेस्कटॉप (लेकिन Universal Windows Platform नहीं) ऐप्लिकेशन
फ़ॉर्म की वैल्यू ऐप्लिकेशन के टाइप को डेस्कटॉप ऐप्लिकेशन पर सेट करें.

मैन्युअल तरीके से कॉपी करें/चिपकाएं

ऐक्सेस के दायरों की पहचान करना

स्कोप की वजह से आपका ऐप्लिकेशन, सिर्फ़ उन संसाधनों के ऐक्सेस का अनुरोध कर सकता है जिनकी उसे ज़रूरत है. साथ ही, ताकि उपयोगकर्ता आपके ऐप्लिकेशन को दिए जाने वाले ऐक्सेस की मात्रा को कंट्रोल कर सकें. इसलिए, यहां हो सकता है कि अनुरोध किए गए दायरों की संख्या और उपयोगकर्ता की सहमति लेना न भूलें.

OAuth 2.0 ऑथराइज़ेशन लागू करने से पहले, हमारा सुझाव है कि आप स्कोप की पहचान कर लें जिसे ऐक्सेस करने के लिए आपके ऐप्लिकेशन को अनुमति की ज़रूरत होगी.

OAuth 2.0 API के दायरे दस्तावेज़ में, उन दायरों की सूची जिनका इस्तेमाल Google API को ऐक्सेस करने के लिए किया जा सकता है.

OAuth 2.0 ऐक्सेस टोकन पाना

नीचे दिए गए चरण दिखाते हैं कि आपका ऐप्लिकेशन, एपीआई का इस्तेमाल करने के लिए Google के OAuth 2.0 सर्वर के साथ कैसे इंटरैक्ट करता है उपयोगकर्ता की ओर से एपीआई अनुरोध करने के लिए, उपयोगकर्ता की सहमति. आपके ऐप्लिकेशन में वह होना चाहिए उपयोगकर्ता की अनुमति की ज़रूरत होती है.

पहला चरण: कोड की पुष्टि करने वाला प्रोग्राम और चैलेंज जनरेट करना

Google, कोड एक्सचेंज के लिए प्रूफ़ कुंजी के साथ काम करता है (PKCE) प्रोटोकॉल का इस्तेमाल करके, इंस्टॉल किए गए ऐप्लिकेशन के फ़्लो को ज़्यादा सुरक्षित बनाएं. प्रत्येक अनुमति देने का अनुरोध और उसकी ट्रांसफ़ॉर्म की गई वैल्यू, जिसे "code_Challenge" कहा जाता है, ऑथराइज़ेशन कोड पाने के लिए.

कोड की पुष्टि करने वाला प्रोग्राम बनाएं

code_verifier, हाई-एंट्रॉपी क्रिप्टोग्राफ़िक रैंडम स्ट्रिंग है, जो गैर-रिज़र्व्ड का इस्तेमाल करती है [A-Z] / [a-z] / [0-9] / "-" वर्ण / "." / "_" / "~", जिसमें कम से कम 43 वर्ण हों और ज़्यादा से ज़्यादा 128 वर्ण इस्तेमाल किए जा सकते हैं.

कोड की पुष्टि करने वाले डिवाइस में इतनी एंट्रॉपी होनी चाहिए कि उसमें वैल्यू का अनुमान न लगाया जा सके.

कोड चैलेंज बनाएं

कोड चैलेंज बनाने के दो तरीके इस्तेमाल किए जा सकते हैं.

कोड चैलेंज जनरेट करने के तरीके
S256 (सुझाया गया) कोड चैलेंज, कोड के Base64URL (बिना पैडिंग के) SHA256 हैश है पुष्टि करने वाला.
code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))
सादा कोड चैलेंज और ऊपर जनरेट किए गए कोड की पुष्टि करने वाले कोड की वैल्यू, दोनों एक ही हैं.
code_challenge = code_verifier

दूसरा चरण: Google के OAuth 2.0 सर्वर पर अनुरोध भेजना

उपयोगकर्ता प्राधिकरण प्राप्त करने के लिए, इस पर Google के प्राधिकरण सर्वर को एक अनुरोध भेजें https://accounts.google.com/o/oauth2/v2/auth. यह एंडपॉइंट, ऐक्टिव सेशन लुकअप, उपयोगकर्ता की पुष्टि करता है और उपयोगकर्ता की सहमति लेता है. एंडपॉइंट को सिर्फ़ एसएसएल पर ऐक्सेस किया जा सकता है और यह HTTP (गैर-एसएसएल) कनेक्शन अस्वीकार करती है.

ऑथराइज़ेशन सर्वर, इंस्टॉल किए गए इन क्वेरी स्ट्रिंग पैरामीटर के साथ काम करता है ऐप्लिकेशन:

पैरामीटर
client_id ज़रूरी है

आपके ऐप्लिकेशन का क्लाइंट आईडी. आपको यह वैल्यू यहां दिखेगी API Consoleअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Credentials page.

redirect_uri ज़रूरी है

यह तय करता है कि Google की अनुमति देने वाला सर्वर आपके ऐप्लिकेशन को जवाब कैसे भेजता है. यहां हैं इंस्टॉल किए गए ऐप्स के लिए कई रीडायरेक्ट विकल्प उपलब्ध हैं, और आपको रीडायरेक्ट करने के किसी खास तरीके के साथ अनुमति देने के क्रेडेंशियल ध्यान दें.

वैल्यू, OAuth 2.0 के लिए किसी एक आधिकारिक रीडायरेक्ट यूआरआई से एग्ज़ैक्ट मैच होनी चाहिए जिसे आपने अपने क्लाइंट के API Consoleअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Credentials page. अगर यह मान किसी आधिकारिक यूआरआई, आपको redirect_uri_mismatch गड़बड़ी मिलेगी.

नीचे दी गई टेबल में, कन्वर्ज़न ट्रैकिंग के लिए redirect_uri पैरामीटर की सही वैल्यू दिखाई गई है हर तरीका:

redirect_uri की वैल्यू
कस्टम यूआरआई स्कीम com.example.app:redirect_uri_path

या

com.googleusercontent.apps.123:redirect_uri_path
  • com.example.app, नीचे दिए गए डोमेन का रिवर्स डीएनएस नोटेशन है आपके नियंत्रण में है. कस्टम स्कीम में मान्य पीरियड शामिल होना चाहिए.
  • com.googleusercontent.apps.123 इसका रिवर्स डीएनएस नोटेशन है Client-ID.
  • redirect_uri_path, पाथ का एक वैकल्पिक कॉम्पोनेंट है, जैसे /oauth2redirect. ध्यान दें कि पाथ एक सिंगल से शुरू होना चाहिए स्लैश, जो सामान्य एचटीटीपी यूआरएल से अलग होता है.
लूपबैक का आईपी पता http://127.0.0.1:port या http://[::1]:port

अपने प्लैटफ़ॉर्म से, काम के लूपबैक आईपी पते के बारे में क्वेरी करें और एचटीटीपी शुरू करें रैंडम पोर्ट पर लिसनर. port को असल वैल्यू से बदलें वह पोर्ट नंबर जिस पर आपका ऐप्लिकेशन सुनता हो.

ध्यान दें कि मोबाइल पर लूपबैक आईपी पता रीडायरेक्ट विकल्प के लिए काम करता है ऐप्लिकेशन है अब सेवा में नहीं है.

response_type ज़रूरी है

इससे यह तय होता है कि Google OAuth 2.0 एंडपॉइंट, ऑथराइज़ेशन कोड दिखाता है या नहीं.

इंस्टॉल किए गए ऐप्लिकेशन के लिए पैरामीटर मान को code पर सेट करें.

scope ज़रूरी है

ऐप्लिकेशन स्पेस-डीलिमिटेड दायरों की सूची, जो उन संसाधनों की पहचान करती है जिन्हें आपका ऐप्लिकेशन, का ऐक्सेस दिया गया है. ये वैल्यू उस स्क्रीन के बारे में बताती हैं जिसे Google, उपयोगकर्ता.

स्कोप की वजह से आपका ऐप्लिकेशन सिर्फ़ उन संसाधनों का ऐक्सेस मांग सकता है जिनकी उसे ज़रूरत है साथ ही, उपयोगकर्ता इस बात को भी कंट्रोल कर सकते हैं कि वे का इस्तेमाल करें. इसलिए, अनुरोध किए गए स्कोप की संख्या के बीच एक उलटा संबंध होता है उपयोगकर्ता की सहमति लेने की संभावना को भी बढ़ा देता है.

code_challenge सुझाया गया

कोड में बदले गए code_verifier के बारे में बताता है. इसका इस्तेमाल सर्वर साइड के तौर पर किया जाएगा ऑथराइज़ेशन कोड के एक्सचेंज के दौरान चुनौती का सामना करना पड़ सकता है. यहां जाएं: कोड बनाएं ज़्यादा जानकारी के लिए, ऊपर दिया गया चैलेंज सेक्शन देखें.

code_challenge_method सुझाया गया

इससे पता चलता है कि code_verifier को कोड में बदलने के लिए कौनसा तरीका इस्तेमाल किया गया ऑथराइज़ेशन कोड एक्सचेंज के दौरान. इस पैरामीटर का इस्तेमाल code_challenge पैरामीटर के बारे में ऊपर बताया गया है. code_challenge_method की वैल्यू अगर अनुरोध में मौजूद न हो, तो डिफ़ॉल्ट रूप से plain code_challenge. इस पैरामीटर के लिए, सिर्फ़ ये वैल्यू इस्तेमाल की जा सकती हैं S256 या plain.

state सुझाया गया

ऐसा कोई भी स्ट्रिंग मान तय करता है, जिसका इस्तेमाल आपका ऐप्लिकेशन आपके की अनुमति का अनुरोध और अनुमति देने वाले सर्वर का जवाब. सर्वर वही वैल्यू दिखाता है जो आपने name=value पेयर के तौर पर भेजी है यूआरएल फ़्रैगमेंट आइडेंटिफ़ायर (#) का तरीका आपके आवेदन की सहमति या मना करने के बाद redirect_uri ऐक्सेस अनुरोध.

इस पैरामीटर का इस्तेमाल कई कामों के लिए किया जा सकता है, जैसे कि उपयोगकर्ता को आपके आवेदन में सही संसाधन, नॉन्स भेजना, और क्रॉस-साइट अनुरोध को कम करना जालसाज़ी. आपके redirect_uri का अनुमान लगाने के लिए, state का इस्तेमाल करें आपको यह भरोसा दिलाया जा सकता है कि इनकमिंग कनेक्शन पुष्टि करने का अनुरोध. अगर आप कोई रैंडम स्ट्रिंग जनरेट करते हैं या कुकी के हैश को कोड में बदलते हैं या कोई अन्य वैल्यू होती है, जो क्लाइंट की स्थिति को कैप्चर करती है, तो आप साथ ही, यह पक्का करें कि अनुरोध और रिस्पॉन्स एक ही ब्राउज़र में जनरेट हुए हों, ऐसे हमलों से सुरक्षा देना अलग-अलग साइटों के लिए अनुरोध जालसाज़ी. ज़्यादा जानकारी के लिए, OpenID Connect state टोकन बनाने और उसकी पुष्टि करने के उदाहरण के लिए दस्तावेज़.

login_hint ज़रूरी नहीं

अगर आपके ऐप्लिकेशन को पता है कि कौनसा उपयोगकर्ता प्रमाणित करने की कोशिश कर रहा है, तो वह इस पैरामीटर का इस्तेमाल कर सकता है का इस्तेमाल करें. सर्वर, इस प्रॉम्प्ट के लिए साइन-इन फ़ॉर्म में ईमेल फ़ील्ड को पहले से भरकर या सही मल्टी-लॉगिन सेशन चुनना होगा.

पैरामीटर वैल्यू को किसी ईमेल पते या sub आइडेंटिफ़ायर पर सेट करें, जो उपयोगकर्ता का Google आईडी सेट करें.

अनुमति देने वाले यूआरएल का सैंपल

नीचे दिए गए टैब अलग-अलग रीडायरेक्ट यूआरआई विकल्पों के लिए, अनुमति देने वाले सैंपल यूआरएल दिखाते हैं.

redirect_uri पैरामीटर की वैल्यू को छोड़कर, बाकी सभी यूआरएल एक जैसे हैं. यूआरएल इसमें ज़रूरी response_type और client_id पैरामीटर भी शामिल हैं वैकल्पिक state पैरामीटर के रूप में. हर यूआरएल में इनके लिए लाइन ब्रेक और स्पेस शामिल होते हैं रीडबिलिटी.

कस्टम यूआरआई स्कीम

https://accounts.google.com/o/oauth2/v2/auth?
 scope=email%20profile&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=com.example.app%3A/oauth2redirect&
 client_id=client_id

लूपबैक आईपी पता

https://accounts.google.com/o/oauth2/v2/auth?
 scope=email%20profile&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=http%3A//127.0.0.1%3A9004&
 client_id=client_id

तीसरा चरण: Google, उपयोगकर्ता से सहमति लेने का अनुरोध करता है

इस चरण में, उपयोगकर्ता यह तय करता है कि आपके ऐप्लिकेशन को अनुरोध किया गया ऐक्सेस देना है या नहीं. इस पर इस स्टेज में, Google एक सहमति विंडो दिखाता है. इसमें आपके ऐप्लिकेशन का नाम और Google API दिखता है ऐसी सेवाएं जिन्हें वह उपयोगकर्ता के ऑथराइज़ेशन क्रेडेंशियल के साथ ऐक्सेस करने की अनुमति का अनुरोध कर रहा है और दिए जाने वाले ऐक्सेस के दायरों की खास जानकारी. कॉन्टेंट बनाने इसके बाद उपयोगकर्ता, आपके ऐप्लिकेशन के अनुरोध किए गए एक या उससे ज़्यादा दायरों का ऐक्सेस देने की सहमति दे सकता है या अनुरोध अस्वीकार कर दो.

आपके आवेदन को इस चरण में कुछ भी करने की आवश्यकता नहीं है क्योंकि वह से प्रतिक्रिया की प्रतीक्षा करता है Google के OAuth 2.0 सर्वर से पता चलता है कि कोई ऐक्सेस दिया गया था या नहीं. उस जवाब के बारे में का पालन करने के लिए नीचे दिया गया तरीका अपनाएं.

गड़बड़ियां

Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर किए जाने वाले अनुरोधों पर, उपयोगकर्ता को दिखने वाली गड़बड़ी के मैसेज दिख सकते हैं करने के लिए कहा जाता है. सामान्य गड़बड़ियों के कोड और सुझाए गए समाधान नीचे दिए गए हैं.

admin_policy_enforced

Google खाता, नीचे बताई गई नीतियों की वजह से एक या एक से ज़्यादा दायरों को अनुमति नहीं दे सकता अपने Google Workspace एडमिन से संपर्क करना होगा. Google Workspace एडमिन का सहायता लेख पढ़ें यह कंट्रोल करना कि किस तीसरे पक्ष और इंटरनल ऐप्लिकेशन, Google Workspace का डेटा ऐक्सेस करते हैं ताकि इस बारे में ज़्यादा जानकारी मिल सके कि कोई एडमिन, सभी दायरों या संवेदनशील जानकारी के ऐक्सेस पर कैसे पाबंदी लगा सकता है और आपके OAuth क्लाइंट आईडी का ऐक्सेस साफ़ तौर पर मिलने तक, दायरों पर पाबंदी लगा दी जाएगी.

disallowed_useragent

ऑथराइज़ेशन एंडपॉइंट किसी एम्बेड किए गए उपयोगकर्ता-एजेंट के अंदर दिखाया जाता है, जिसे Google के पास अनुमति नहीं होती OAuth 2.0 की नीतियां.

Android

अनुमति देने के अनुरोध खोलते समय, Android डेवलपर को गड़बड़ी का यह मैसेज दिख सकता है android.webkit.WebView. डेवलपर को इसके बजाय, इन Android लाइब्रेरी का इस्तेमाल करना चाहिए Android के लिए Google साइन-इन या Notebook Foundation के लिए Android के लिए AppAuth.

वेब डेवलपर को यह गड़बड़ी तब दिख सकती है, जब कोई Android ऐप्लिकेशन एम्बेड किया गया उपयोगकर्ता-एजेंट और उपयोगकर्ता, इससे Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर नेविगेट करता है आपकी साइट. डेवलपर को सामान्य लिंक को ऑपरेटिंग सिस्टम, जिसमें दोनों शामिल हैं Android ऐप्लिकेशन के लिंक हैंडलर या डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन का इस्तेमाल करें. कॉन्टेंट बनाने Android के कस्टम टैब लाइब्रेरी का भी इस्तेमाल किया जा सकता है.

iOS

अनुमति के अनुरोध खोलते समय, iOS और macOS डेवलपर को यह गड़बड़ी दिख सकती है WKWebView. डेवलपर को इसके बजाय iOS लाइब्रेरी का इस्तेमाल करना चाहिए, जैसे कि iOS के लिए Google साइन-इन या Notebook Foundation की सेवा iOS के लिए AppAuth.

वेब डेवलपर को यह गड़बड़ी तब दिख सकती है, जब iOS या macOS ऐप्लिकेशन, एक एम्बेड किया गया उपयोगकर्ता-एजेंट और उपयोगकर्ता, इससे Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर नेविगेट करता है आपकी साइट. डेवलपर को सामान्य लिंक को ऑपरेटिंग सिस्टम, जिसमें दोनों शामिल हैं यूनिवर्सल लिंक हैंडलर या डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन का इस्तेमाल करें. कॉन्टेंट बनाने SFSafariViewController लाइब्रेरी का भी इस्तेमाल किया जा सकता है.

org_internal

अनुरोध में दिया गया OAuth क्लाइंट आईडी, एक ऐसे प्रोजेक्ट का हिस्सा है जो Google खातों को तय Google Cloud का संगठन. इस कॉन्फ़िगरेशन विकल्प के बारे में ज़्यादा जानकारी के लिए, यहां देखें: उपयोगकर्ता का टाइप 'ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है' सेट अप करने का सहायता लेख पढ़ें.

invalid_grant

अगर आपको किसी कोड की पुष्टि करने वाला प्रोग्राम और चैलेंज में शामिल किया गया है, तो code_callenge पैरामीटर अमान्य है या मौजूद नहीं है. पक्का करें कि code_challenge पैरामीटर सही तरीके से सेट है.

किसी ऐक्सेस टोकन को रीफ़्रेश करते समय, हो सकता है कि टोकन की समयसीमा खत्म हो गई हो या उसकी समयसीमा खत्म हो गई हो अमान्य हो गया है. उपयोगकर्ता की फिर से पुष्टि करें और नए टोकन पाने के लिए, उपयोगकर्ता की सहमति मांगें. अगर आपको जारी रखना है, तो इस गड़बड़ी को देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन ठीक तरह से कॉन्फ़िगर किया गया है और आप इसमें सही टोकन और पैरामीटर का इस्तेमाल करें. ऐसा न करने पर, उपयोगकर्ता खाते में आपकी साइट को मिटा दिया गया है या उसे बंद कर दिया गया है.

redirect_uri_mismatch

अनुमति देने के अनुरोध में पास किया गया redirect_uri, उस आधिकारिक खाते से मेल नहीं खाता जिसे अनुमति मिली है OAuth क्लाइंट आईडी के लिए रीडायरेक्ट यूआरआई. यहां दिए गए आधिकारिक रीडायरेक्ट यूआरआई की समीक्षा करें: Google API Console पर बताया गया हैCredentials page.

पास किया गया redirect_uri, क्लाइंट टाइप के लिए अमान्य हो सकता है.

redirect_uri पैरामीटर ऐसा OAuth आउट-ऑफ़-बैंड (OOB) फ़्लो देख सकता है जिसमें अब काम नहीं करता. देखें डेटा को दूसरी जगह भेजने से जुड़ी गाइड अपडेट करें. इंटिग्रेशन.

invalid_request

आपके किए गए अनुरोध में कोई गड़बड़ी थी. ऐसा कई वजहों से हो सकता है:

  • अनुरोध सही तरीके से फ़ॉर्मैट नहीं किया गया था
  • अनुरोध में ज़रूरी पैरामीटर मौजूद नहीं थे
  • अनुरोध, पुष्टि करने के लिए किसी ऐसे तरीके का इस्तेमाल करता है जो Google पर काम नहीं करता. अपने OAuth की पुष्टि करें इंटिग्रेशन के लिए, इंटिग्रेशन के सुझाए गए तरीके का इस्तेमाल किया जाता है
  • रीडायरेक्ट यूआरआई के लिए किसी कस्टम स्कीम का इस्तेमाल किया जाता है : अगर आपको गड़बड़ी का मैसेज दिखता है कस्टम यूआरआई स्कीम इस्तेमाल नहीं की जा सकती: Chrome ऐप्लिकेशन या कस्टम यूआरआई स्कीम आपके Android क्लाइंट के लिए चालू नहीं है, तो इसका मतलब है कि कस्टम यूआरआई का इस्तेमाल किया जा रहा है ऐसी स्कीम जो Chrome ऐप्लिकेशन पर काम नहीं करती और डिफ़ॉल्ट रूप से Android. कस्टम यूआरआई स्कीम के बारे में ज़्यादा जानें विकल्प

चौथा चरण: OAuth 2.0 सर्वर रिस्पॉन्स को मैनेज करना

आपके ऐप्लिकेशन को प्राधिकरण प्रतिक्रिया किस तरह से प्राप्त होगी, यह इस बात पर निर्भर करता है कि रीडायरेक्ट यूआरआई स्कीम का इस्तेमाल करती है. योजना के बावजूद, जवाब में या तो ऑथराइज़ेशन कोड (code) होगा या कोई गड़बड़ी होगी (error). उदाहरण के लिए, error=access_denied से पता चलता है कि उपयोगकर्ता अनुरोध अस्वीकार कर दिया है.

अगर उपयोगकर्ता आपके ऐप्लिकेशन को ऐक्सेस देता है, तो आपके पास ऐक्सेस टोकन और रीफ़्रेश टोकन की जानकारी देनी होगी, जैसा कि अगले चरण में बताया गया है.

पांचवां चरण: रीफ़्रेश करने और ऐक्सेस करने के लिए Exchange का ऑथराइज़ेशन कोड टोकन

ऐक्सेस टोकन से ऑथराइज़ेशन कोड को बदलने के लिए, https://oauth2.googleapis.com/token एंडपॉइंट और ये पैरामीटर सेट करें:

फ़ील्ड
client_id API Consoleसे मिला क्लाइंट आईडी Credentials page.
client_secret API Consoleसे मिला क्लाइंट सीक्रेट Credentials page.
code शुरुआती अनुरोध के बाद, ऑथराइज़ेशन कोड लौटाया गया.
code_verifier कोड की पुष्टि करने वाला प्रोग्राम, जिसे आपने बनाया है पहला चरण.
grant_type जैसा कि OAuth 2.0 में बताया गया है स्पेसिफ़िकेशन के लिए, इस फ़ील्ड की वैल्यू authorization_code पर सेट होनी चाहिए.
redirect_uri यहां आपके प्रोजेक्ट के लिए दिए गए रीडायरेक्ट यूआरआई में से एक है: API Consoleअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है दिए गए टास्क के लिए Credentials page client_id.

नीचे दिए गए स्निपेट में, अनुरोध का एक सैंपल दिखाया गया है:

POST /token HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=your_client_id&
client_secret=your_client_secret&
redirect_uri=http://127.0.0.1:9004&
grant_type=authorization_code

इस अनुरोध का जवाब देने के लिए, Google एक JSON ऑब्जेक्ट दिखाता है. इसमें कुछ समय के लिए उपलब्ध रहने वाला ऐक्सेस होता है टोकन और रीफ़्रेश टोकन.

इस जवाब में ये फ़ील्ड शामिल होते हैं:

फ़ील्ड
access_token वह टोकन जो आपका ऐप्लिकेशन, Google API अनुरोध को अनुमति देने के लिए भेजता है.
expires_in ऐक्सेस टोकन की बची हुई अवधि कुछ सेकंड में.
id_token ध्यान दें: यह प्रॉपर्टी सिर्फ़ तब दिखती है, जब आपके अनुरोध में पहचान का स्कोप शामिल होता है. जैसे, openid, profile या email. मान एक है JSON Web Token (JWT), जिसमें उपयोगकर्ता.
refresh_token ऐसा टोकन जिसका इस्तेमाल करके, नया ऐक्सेस टोकन पाया जा सकता है. रीफ़्रेश टोकन इस तारीख तक मान्य हैं: जब उपयोगकर्ता ऐक्सेस रद्द कर देता है. ध्यान दें कि इंस्टॉल किए गए ऐप्लिकेशन के लिए रीफ़्रेश टोकन हमेशा दिखाए जाते हैं.
scope access_token ने ऐक्सेस के जो दायरे दिए हैं उन्हें इनकी सूची के तौर पर दिखाया गया है स्पेस-डीलिमिटेड, केस-सेंसिटिव स्ट्रिंग.
token_type टोकन टाइप किया गया. इस समय, इस फ़ील्ड का मान हमेशा पर सेट होता है Bearer.

नीचे दिया गया स्निपेट एक सैंपल रिस्पॉन्स दिखाता है:

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "token_type": "Bearer",
  "scope": "https://www.googleapis.com/auth/drive.metadata.readonly",
  "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

Calling Google API

जब आपके ऐप्लिकेशन को ऐक्सेस टोकन मिल जाता है, तब आपके पास इस टोकन का इस्तेमाल करके, Google को कॉल करने का विकल्प होता है किसी दिए गए प्रतिनिधि की ओर से API उपयोगकर्ता खाते के लिए. ऐसा करने के लिए, शामिल करें एपीआई को किए गए अनुरोध में access_token क्वेरी शामिल करके, ऐक्सेस टोकन पैरामीटर या Authorization एचटीटीपी हेडर Bearer वैल्यू. जब मुमकिन हो, एचटीटीपी हेडर को प्राथमिकता दी जाती है, क्योंकि सर्वर लॉग में क्वेरी स्ट्रिंग अक्सर दिखती हैं. ज़्यादातर मामलों में आप Google API पर अपने कॉल सेट अप करने के लिए क्लाइंट लाइब्रेरी का उपयोग कर सकते हैं (उदाहरण के लिए, Drive Files API को कॉल करना).

आप सभी Google API को आज़मा सकते हैं और यहां पर उनके दायरे देख सकते हैं OAuth 2.0 Playground.

एचटीटीपी जीईटी के उदाहरण

एक कॉल drive.files Authorization: Bearer एचटीटीपी का इस्तेमाल करके एंडपॉइंट (Drive Files API) का इस्तेमाल करना हेडर ऐसा दिख सकता है. ध्यान दें कि आपको अपना ऐक्सेस टोकन बताना होगा:

GET /drive/v2/files HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer access_token

यहां access_token का इस्तेमाल करके, पुष्टि किए गए उपयोगकर्ता के लिए उसी एपीआई को कॉल किया गया है क्वेरी स्ट्रिंग पैरामीटर:

GET https://www.googleapis.com/drive/v2/files?access_token=access_token

curl के उदाहरण

curl कमांड-लाइन ऐप्लिकेशन का इस्तेमाल करके, इन कमांड की जांच की जा सकती है. यह रही उदाहरण के लिए, जो एचटीटीपी हेडर विकल्प का इस्तेमाल करता है (प्राथमिकता दी जाती है):

curl -H "Authorization: Bearer access_token" https://www.googleapis.com/drive/v2/files

इसके अलावा, क्वेरी स्ट्रिंग पैरामीटर विकल्प:

curl https://www.googleapis.com/drive/v2/files?access_token=access_token

ऐक्सेस टोकन को रीफ़्रेश करना

ऐक्सेस टोकन, समय-समय पर खत्म हो जाते हैं और मिलते-जुलते एपीआई अनुरोध के लिए, अमान्य क्रेडेंशियल बन जाते हैं. आपने लोगों तक पहुंचाया मुफ़्त में किसी ऐक्सेस टोकन को रीफ़्रेश कर सकता है. इसके लिए, उसे अनुमति देने के लिए नहीं कहा जाता. ऐसा तब भी किया जा सकता है, जब उपयोगकर्ता मौजूद नहीं है) अगर आपने टोकन से जुड़े स्कोप के लिए ऑफ़लाइन ऐक्सेस का अनुरोध किया है.

ऐक्सेस टोकन को रीफ़्रेश करने के लिए, आपका ऐप्लिकेशन एचटीटीपीएस POST भेजता है Google के ऑथराइज़ेशन सर्वर (https://oauth2.googleapis.com/token) से अनुरोध करेगा कि इसमें ये पैरामीटर शामिल होते हैं:

फ़ील्ड
client_id API Consoleसे मिला क्लाइंट आईडी.
client_secret API Consoleसे मिला क्लाइंट सीक्रेट. (client_secret के तौर पर रजिस्टर किए गए क्लाइंट के अनुरोधों पर यह लागू नहीं होता है Android, iOS या Chrome ऐप्लिकेशन.)
grant_type जैसे तय की गई OAuth 2.0 का स्पेसिफ़िकेशन, इस फ़ील्ड का मान refresh_token पर सेट होना चाहिए.
refresh_token ऑथराइज़ेशन कोड के एक्सचेंज से मिला रीफ़्रेश टोकन.

नीचे दिए गए स्निपेट में, अनुरोध का एक सैंपल दिखाया गया है:

POST /token HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

client_id=your_client_id&
client_secret=your_client_secret&
refresh_token=refresh_token&
grant_type=refresh_token

जब तक उपयोगकर्ता, ऐप्लिकेशन को दिया गया ऐक्सेस रद्द नहीं करता, तब तक टोकन सर्वर JSON ऑब्जेक्ट दिखाता है, जिसमें नया ऐक्सेस टोकन होता है. नीचे दिया गया स्निपेट एक सैंपल दिखाता है जवाब:

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "scope": "https://www.googleapis.com/auth/drive.metadata.readonly",
  "token_type": "Bearer"
}

ध्यान दें कि जारी किए जाने वाले रीफ़्रेश टोकन की संख्या सीमित है; एक सीमा प्रति और सभी क्लाइंट में हर उपयोगकर्ता के हिसाब से एक-दूसरे का इस्तेमाल करना होगा. आपको रीफ़्रेश टोकन सेव करने चाहिए और उनका इस्तेमाल तब तक करते रहें, जब तक वे मान्य हों. अगर आपका आवेदन बहुत ज़्यादा रीफ़्रेश टोकन का अनुरोध करता है, तो वह इन सीमाओं का सामना कर सकता है. इस स्थिति में पुराने रीफ़्रेश टोकन काम करना बंद कर देगी.

टोकन निरस्त करना

कुछ मामलों में, हो सकता है कि उपयोगकर्ता किसी ऐप्लिकेशन को दिया गया ऐक्सेस वापस लेना चाहें. उपयोगकर्ता, ऐक्सेस रद्द कर सकता है पर जाकर खाता सेटिंग. ज़्यादा जानकारी के लिए, हटाएं तीसरे पक्ष की साइटों का साइट या ऐप्लिकेशन ऐक्सेस सेक्शन और ऐसे ऐप्लिकेशन जिनके पास आपके खाते का ऐक्सेस है सहायता दस्तावेज़ देखें.

किसी ऐप्लिकेशन को दी गई ऐक्सेस को प्रोग्राम के हिसाब से रद्द करना भी संभव है. प्रोग्राम के हिसाब से प्रोसेस को रद्द करना तब ज़रूरी होता है, जब कोई उपयोगकर्ता सदस्यता छोड़ता है, किसी ऐप्लिकेशन के लिए ज़रूरी एपीआई संसाधनों में बहुत ज़्यादा बदलाव हुए हैं. दूसरे शब्दों में, हटाने की प्रोसेस के हिस्से में, एपीआई अनुरोध शामिल हो सकता है. इससे यह पक्का किया जा सकेगा कि पहले से दी गई अनुमतियां ऐप्लिकेशन को दी गई अनुमति हटा दी जाती है.

किसी टोकन को प्रोग्राम के हिसाब से रद्द करने के लिए, आपका ऐप्लिकेशन इसके लिए अनुरोध करता है https://oauth2.googleapis.com/revoke और इसमें पैरामीटर के तौर पर टोकन शामिल होता है:

curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \
        https://oauth2.googleapis.com/revoke?token={token}

टोकन, ऐक्सेस टोकन या रीफ़्रेश टोकन हो सकता है. अगर टोकन एक ऐक्सेस टोकन है और उसमें प्रासंगिक रीफ़्रेश टोकन के रूप में, तो रीफ़्रेश टोकन को भी निरस्त कर दिया जाएगा.

अगर सहमति रद्द हो गई है, तो रिस्पॉन्स का एचटीटीपी स्टेटस कोड यह होगा 200. गड़बड़ी की स्थितियों के लिए, एक एचटीटीपी स्टेटस कोड 400 दिखाया जाता है डालें.

इसके बारे में और पढ़ें

के लिए आईईटीएफ़ का सबसे सही मौजूदा तरीका OAuth 2.0 नेटिव ऐप्लिकेशन, यहां बताए गए कई सबसे सही तरीकों के बारे में बताते हैं.

'सभी खातों की सुरक्षा' सुविधा को लागू करना

अपने उपयोगकर्ताओं की सुरक्षा के लिए, Google Ads खातों में 'क्रॉस-खाता' लागू की जा रही है Google की 'सभी खातों की सुरक्षा' सेवा का इस्तेमाल करके अपने डेटा की सुरक्षा करना. यह सेवा आपको सुरक्षा से जुड़ी गतिविधियों की सूचना पाने की सदस्यता लेते हैं. इन सूचनाओं में, आपके ऐप्लिकेशन के बारे में जानकारी दी जाती है उपयोगकर्ता खाते में बड़े बदलाव हुए हैं. इसके बाद, कार्रवाई करने के लिए जानकारी का इस्तेमाल किया जा सकता है. इवेंट पर जवाब देने का फ़ैसला किस तरह लिया जाता है.

Google की 'सभी खातों की सुरक्षा' सेवा से आपके ऐप्लिकेशन को भेजे जाने वाले इवेंट टाइप के कुछ उदाहरण:

  • https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
  • https://schemas.openid.net/secevent/oauth/event-type/token-revoked
  • https://schemas.openid.net/secevent/risc/event-type/account-disabled

ज़्यादा जानकारी के लिए, 'सभी खातों की सुरक्षा' पेज की मदद से उपयोगकर्ता खातों को सुरक्षित रखना ताकि 'सभी खातों की सुरक्षा' सुविधा को लागू करने के बारे में ज़्यादा जानकारी और उपलब्ध इवेंट की पूरी सूची देख सकें.