OAuth के साथ Google खाता लिंक करना

खाते, इंडस्ट्री स्टैंडर्ड OAuth 2.0 इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करके जोड़े जाते हैं. आपकी सेवा में, OAuth 2.0 का पालन करने वाले अनुमति और टोकन एक्सचेंज एंडपॉइंट काम करने चाहिए.

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

ऑथराइज़ेशन कोड फ़्लो में, आपको दो एंडपॉइंट की ज़रूरत होती है:

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

  • टोकन एक्सचेंज एंडपॉइंट, जो दो तरह के एक्सचेंज के लिए ज़िम्मेदार है:

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

OAuth 2.0 फ़्लो चुनना

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

डिज़ाइन गाइडलाइन

इस सेक्शन में, उपयोगकर्ता के स्क्रीन को डिज़ाइन करने से जुड़ी ज़रूरी शर्तों और सुझावों के बारे में बताया गया है. यह स्क्रीन आपको OAuth लिंक करने के फ़्लो के लिए होस्ट करती है. Google के ऐप्लिकेशन के कॉल करने के बाद, आपका प्लैटफ़ॉर्म Google पेज में साइन इन करता है और उपयोगकर्ता को खाता जोड़ने की सहमति स्क्रीन दिखाता है. खातों को जोड़ने की सहमति देने के बाद, उपयोगकर्ता को Google&#39s के ऐप्लिकेशन पर वापस भेज दिया जाता है.

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

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

  1. आपको बताना होगा कि उपयोगकर्ता का खाता Google से जोड़ा जाएगा, Google Home या Google Assistant जैसे Google के किसी खास प्रॉडक्ट से नहीं.

सुझाव

हम आपको ये काम करने का सुझाव देते हैं:

  1. Google की # नीति दिखाने के लिए. सहमति वाली स्क्रीन पर Google की निजता नीति का लिंक शामिल करें.

  2. शेयर किया जाने वाला डेटा. उपयोगकर्ता को यह बताने के लिए कि उन्हें अपने डेटा की ज़रूरत क्यों और क्यों है, आसान और संक्षिप्त भाषा का इस्तेमाल करें.

  3. कॉल-टू-ऐक्शन मिटाएं. अपनी सहमति स्क्रीन पर साफ़ कॉल-टू-ऐक्शन बताएं, जैसे कि "सहमत हैं और लिंक करें". इसकी वजह यह है कि उपयोगकर्ताओं को यह समझना ज़रूरी है कि उन्हें अपने खाते लिंक करने के लिए, Google के साथ कौनसा डेटा शेयर करना है.

  4. सदस्यता रद्द करने की सुविधा. अगर उपयोगकर्ता लिंक नहीं करना चाहते हैं, तो उन्हें वापस या रद्द करने का तरीका बताएं.

  5. साइन इन करने की प्रोसेस हटाएं. पक्का करें कि उपयोगकर्ताओं के पास अपने Google खाते में साइन इन करने का साफ़ तरीका है, जैसे कि उनके उपयोगकर्ता नाम और पासवर्ड के लिए फ़ील्ड या Google से साइन इन करें.

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

  7. उपयोगकर्ता खाता बदलने की सुविधा. उपयोगकर्ताओं को अपने खाते(खातों) को स्विच करने का तरीका बताएं. यह खास तौर पर तब फ़ायदेमंद होता है, जब उपयोगकर्ता एक से ज़्यादा खाते इस्तेमाल करते हैं.

    • अगर किसी उपयोगकर्ता को खाते स्विच करने के लिए, सहमति देने वाली स्क्रीन बंद करनी होती है, तो उसे वापस पाया जा सकने वाला गड़बड़ी का मैसेज Google को भेजें, ताकि उपयोगकर्ता OAuth लिंकिंग और इंप्लिसिट फ़्लो से अपनी पसंद के खाते में साइन इन कर सके.
  8. अपना लोगो शामिल करें. सहमति वाली स्क्रीन पर अपनी कंपनी का लोगो दिखाएं. अपना लोगो रखने के लिए अपनी शैली के दिशा-निर्देशों का इस्तेमाल करें. अगर आप Google का # लोगो भी दिखाना चाहते हैं, तो लोगो और ट्रेडमार्क देखें.

प्रोजेक्ट बनाना

खाता लिंक करने के मकसद से अपना प्रोजेक्ट बनाने के लिए:

  1. Go to the Google API Console.
  2. प्रोजेक्ट बनाएं पर क्लिक करें
  3. एक नाम दर्ज करें या उत्पन्न सुझाव को स्वीकार करें।
  4. किसी भी शेष फ़ील्ड की पुष्टि करें या संपादित करें।
  5. क्रिएट पर क्लिक करें

अपना प्रोजेक्ट आईडी देखने के लिए:

  1. Go to the Google API Console.
  2. लैंडिंग पृष्ठ पर तालिका में अपना प्रोजेक्ट ढूंढें। प्रोजेक्ट आईडी ID कॉलम में दिखाई देती है।

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

  1. Google API कंसोल का OAuth सहमति स्क्रीन पेज खोलें.
  2. अगर कहा जाए, तो वह प्रोजेक्ट चुनें जिसे आपने अभी-अभी बनाया है.
  3. "OAuth की सहमति वाली स्क्रीन" पेज पर, फ़ॉर्म भरें और "सेव करें" बटन पर क्लिक करें.

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

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

    सहायता ईमेल: इसकी मदद से उपयोगकर्ता, अपनी सहमति के बारे में सवाल पूछने के लिए आपसे संपर्क कर सकते हैं.

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

    अनुमति वाले डोमेन: आपकी और आपके उपयोगकर्ताओं की सुरक्षा के लिए, Google सिर्फ़ उन ऐप्लिकेशन को अनुमति देता है जो अनुमति वाले डोमेन के इस्तेमाल की पुष्टि करने के लिए, OAuth का इस्तेमाल करते हैं. आपके ऐप्लिकेशन के लिंक अधिकृत डोमेन पर होस्ट होने चाहिए. ज़्यादा जानें.

    ऐप्लिकेशन का होम पेज लिंक: आपके ऐप्लिकेशन का होम पेज. किसी अधिकृत डोमेन पर होस्ट किया जाना चाहिए.

    ऐप्लिकेशन की निजता नीति का लिंक: यह Google खाता लिंक करने के लिए सहमति वाली स्क्रीन पर दिखाया जाता है. किसी अधिकृत डोमेन पर होस्ट किया जाना चाहिए.

    ऐप्लिकेशन की सेवा की शर्तों का लिंक (ज़रूरी नहीं): इसे किसी ऐसे डोमेन पर होस्ट किया जाना चाहिए जिसे अनुमति मिली हो.

    पहला डायग्राम. काल्पनिक ऐप्लिकेशन और ट्यूरी के लिए, Google खाता लिंक करने की सहमति वाली स्क्रीन

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

अपना OAuth सर्वर लागू करें

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

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

Google के शुरू किए गए OAuth 2.0 के ऑथराइज़ेशन कोड के फ़्लो का सेशन नया फ़्लो:

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

अनुमति देने के अनुरोधों को मैनेज करना

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

ऑथराइज़ेशन एंडपॉइंट पैरामीटर
client_id वह Client ID जिसे आपने Google को असाइन किया है.
redirect_uri वह यूआरएल जिस पर आपने इस अनुरोध का जवाब भेजा है.
state हिसाब-किताब की ऐसी वैल्यू जो Google को वापस पास की जाती है. हालांकि, इसमें कोई बदलाव नहीं होता रीडायरेक्ट यूआरआई.
scope ज़रूरी नहीं: स्कोप स्ट्रिंग का एक स्पेस-डीलिमिटेड सेट जो वह डेटा जिसके लिए Google अनुमति का अनुरोध कर रहा है.
response_type रिस्पॉन्स में दी जाने वाली वैल्यू का टाइप. OAuth 2.0 के लिए ऑथराइज़ेशन कोड का फ़्लो, रिस्पॉन्स का टाइप हमेशा code होता है.
user_locale इस सेटिंग में मौजूद Google खाते की भाषा सेटिंग RFC5646 फ़ॉर्मैट की जानकारी का इस्तेमाल किया जाता है. इसका इस्तेमाल आपके कॉन्टेंट को उपयोगकर्ता की पसंदीदा भाषा में करने के लिए किया जाता है.

उदाहरण के लिए, अगर आपका ऑथराइज़ेशन एंडपॉइंट यहां उपलब्ध है https://myservice.example.com/auth, अनुरोध कुछ ऐसा दिख सकता है:

GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&scope=REQUESTED_SCOPES&response_type=code&user_locale=LOCALE

अगर आपको साइन-इन करने के अनुरोधों को मैनेज करना है, तो अपने ऑथराइज़ेशन एंडपॉइंट के लिए ये काम करें चरण:

  1. पुष्टि करें कि client_id, Google को असाइन किए गए Client-ID से मेल खाता हो. साथ ही, redirect_uri आपकी सेवा के लिए, Google से मिले रीडायरेक्ट यूआरएल से मेल खाता हो. अनुमति न देने के लिए, ये जांच ज़रूरी हैं अनचाहे या गलत तरीके से कॉन्फ़िगर किए गए क्लाइंट ऐप्लिकेशन के ऐक्सेस. अगर आपको कई सारे सॉफ़्टवेयर OAuth 2.0 फ़्लो, यह भी पुष्टि करते हैं कि response_type, code है.
  2. देखें कि उपयोगकर्ता ने आपकी सेवा में साइन इन किया है या नहीं. अगर उपयोगकर्ता ने साइन इन नहीं किया है, अपनी सेवा का साइन-इन या साइन-अप फ़्लो पूरा करें.
  3. Google के लिए एक ऑथराइज़ेशन कोड जनरेट करें, ताकि वह आपके एपीआई को ऐक्सेस कर सके. ऑथराइज़ेशन कोड कोई भी स्ट्रिंग वैल्यू हो सकता है, लेकिन यह यूनीक होना चाहिए उपयोगकर्ता, टोकन क्लाइंट के लिए, और कोड की समयसीमा खत्म होने की जानकारी का प्रतिनिधित्व करते हैं वह आसानी से समझ में आ जाए. आम तौर पर, आपकी अनुमति लेने की प्रक्रिया शुरू की जाती है जो करीब 10 मिनट बाद खत्म हो जाते हैं.
  4. पुष्टि करें कि redirect_uri पैरामीटर से तय किए गए यूआरएल में नीचे दिया गया फ़ॉर्म:
      https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
      https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
      
  5. उपयोगकर्ता के ब्राउज़र को redirect_uri पैरामीटर. वह प्राधिकरण कोड शामिल करें रीडायरेक्ट करते समय, अभी-अभी जनरेट की गई और मूल, बिना बदलाव की गई स्थिति की वैल्यू code और state पैरामीटर जोड़कर. नीचे दी गई चीज़ें इससे बनने वाले यूआरएल का उदाहरण:
    https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID?code=AUTHORIZATION_CODE&state=STATE_STRING

टोकन एक्सचेंज के अनुरोधों को मैनेज करना

आपकी सेवा का टोकन एक्सचेंज एंडपॉइंट, दो तरह के टोकन के लिए ज़िम्मेदार है एक्सचेंज:

  • ऐक्सेस टोकन और रीफ़्रेश टोकन के लिए, Exchange के ऑथराइज़ेशन कोड
  • ऐक्सेस टोकन के लिए Exchange रीफ़्रेश टोकन

टोकन एक्सचेंज करने के अनुरोधों में ये पैरामीटर शामिल होते हैं:

टोकन एक्सचेंज एंडपॉइंट पैरामीटर
client_id एक ऐसी स्ट्रिंग जो अनुरोध के ऑरिजिन की पहचान Google के तौर पर करती है. इस स्ट्रिंग में उन्हें आपके सिस्टम में Google के यूनीक आइडेंटिफ़ायर के तौर पर रजिस्टर किया जाना चाहिए.
client_secret यह एक सीक्रेट स्ट्रिंग है, जिसे आपने अपनी सेवा के लिए Google के साथ रजिस्टर किया है.
grant_type किस टाइप के टोकन की अदला-बदली की जा रही है. यह या तो authorization_code या refresh_token.
code grant_type=authorization_code होने पर, यह पैरामीटर यह कोड, Google को आपके साइन इन क्रेडेंशियल या टोकन एक्सचेंज से मिला है एंडपॉइंट का इस्तेमाल करें.
redirect_uri grant_type=authorization_code होने पर, यह पैरामीटर यूआरएल की पुष्टि के शुरुआती अनुरोध में इस्तेमाल किया गया यूआरएल.
refresh_token grant_type=refresh_token होने पर, यह पैरामीटर रीफ़्रेश टोकन, जो Google को आपके टोकन एक्सचेंज एंडपॉइंट से मिला है.
ऐक्सेस टोकन और रीफ़्रेश टोकन के लिए, Exchange के ऑथराइज़ेशन कोड

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

इन अनुरोधों के लिए, grant_type का मान authorization_code है और code का मान, उस प्राधिकरण कोड का मान है जो आपने पहले दिया था अपने Pixel डिवाइस के अनुभव को बेहतर बनाने में मदद करें. एक्सचेंज के अनुरोध का एक उदाहरण नीचे दिया गया है ऐक्सेस टोकन और रीफ़्रेश टोकन का ऑथराइज़ेशन कोड:

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

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI

ऐक्सेस टोकन और रीफ़्रेश टोकन से ऑथराइज़ेशन कोड को एक्सचेंज करने के लिए, टोकन एक्सचेंज एंडपॉइंट यह प्रोसेस करके, POST अनुरोधों का जवाब देता है चरण:

  1. पुष्टि करें कि client_id, अनुरोध के मूल की पहचान, अनुमति वाले उपयोगकर्ता के तौर पर करता है ऑरिजिन और client_secret अनुमानित वैल्यू से मेल खाता हो.
  2. पुष्टि करें कि ऑथराइज़ेशन कोड मान्य है और उसकी समयसीमा खत्म नहीं हुई है. साथ ही, अनुरोध में दिया गया क्लाइंट आईडी, ऑथराइज़ेशन कोड.
  3. पुष्टि करें कि redirect_uri पैरामीटर से तय किया गया यूआरएल एक जैसा है में तय सीमा से ज़्यादा नहीं होना चाहिए.
  4. अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं हो पा रही है, तो एक एचटीटीपी दिखाएं {"error": "invalid_grant"} के मुख्य भाग के रूप में 400 गलत अनुरोध की गड़बड़ी.
  5. इसके अलावा, रीफ़्रेश जनरेट करने के लिए ऑथराइज़ेशन कोड से मिले यूज़र आईडी का इस्तेमाल करें एक टोकन और ऐक्सेस टोकन है. ये टोकन कोई भी स्ट्रिंग वैल्यू हो सकते हैं, लेकिन यह खास तौर पर उपयोगकर्ता और उस क्लाइंट की जानकारी होनी चाहिए जिसके लिए टोकन दिया गया है. ऐसा होना चाहिए जिससे अनुमान लगाया जा सके. ऐक्सेस टोकन के लिए, ऐक्सेस टोकन के खत्म होने की अवधि भी रिकॉर्ड करें यह टोकन जारी किया जाता है. यह आम तौर पर, टोकन जारी किए जाने के एक घंटे बाद होता है. रीफ़्रेश टोकन की समयसीमा खत्म नहीं होती.
  6. एचटीटीपीएस रिस्पॉन्स के मुख्य हिस्से में, यहां दिया गया JSON ऑब्जेक्ट दिखाएं:
    {
    "token_type": "Bearer",
    "access_token": "ACCESS_TOKEN",
    "refresh_token": "REFRESH_TOKEN",
    "expires_in": SECONDS_TO_EXPIRATION
    }

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

ऐक्सेस टोकन के लिए Exchange रीफ़्रेश टोकन

ऐक्सेस टोकन की समयसीमा खत्म होने पर, Google आपके टोकन एक्सचेंज को एक अनुरोध भेजता है एंडपॉइंट का इस्तेमाल करें, ताकि नए ऐक्सेस टोकन के लिए रीफ़्रेश टोकन को एक्सचेंज किया जा सके.

इन अनुरोधों के लिए, grant_type का मान refresh_token है और मान refresh_token का मान उस रीफ़्रेश टोकन का मान है, जिसे आपने पहले कभी अनुमति दी थी Google. रीफ़्रेश टोकन को एक्सचेंज करने के अनुरोध का एक उदाहरण नीचे दिया गया है :

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

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

रीफ़्रेश टोकन को ऐक्सेस टोकन से एक्सचेंज करने के लिए, आपका टोकन एक्सचेंज एंडपॉइंट यह तरीका अपनाकर POST अनुरोधों का जवाब देता है:

  1. पुष्टि करें कि client_id, अनुरोध के मूल की पहचान Google के तौर पर करता है, और कि client_secret अनुमानित वैल्यू से मेल खाता है.
  2. पुष्टि करें कि रीफ़्रेश टोकन मान्य है और इसमें क्लाइंट आईडी बताया गया है अनुरोध, रीफ़्रेश टोकन से जुड़े क्लाइंट आईडी से मेल खाता हो.
  3. अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं हो पा रही है, तो एचटीटीपी 400 दिखाएं {"error": "invalid_grant"} के मुख्य भाग के रूप में गलत अनुरोध में गड़बड़ी.
  4. इसके अलावा, ऐक्सेस जनरेट करने के लिए रीफ़्रेश टोकन से मिले यूज़र आईडी का इस्तेमाल करें टोकन. ये टोकन, स्ट्रिंग की कोई भी वैल्यू हो सकती हैं, लेकिन ये यूनीक होने चाहिए टोकन, उपयोगकर्ता और क्लाइंट के लिए हो सकता है. अनुमान लगाया जा सकता है. ऐक्सेस टोकन के लिए, टोकन के खत्म होने की अवधि भी रिकॉर्ड करें, आम तौर पर, टोकन जारी करने के एक घंटे बाद.
  5. एचटीटीपीएस के मुख्य हिस्से में, यहां दिया गया JSON ऑब्जेक्ट दिखाएं जवाब:
    {
    "token_type": "बियरर",
    "access_token": "ACCESS_TOKEN",
    "expires_in": SECONDS_TO_EXPIRATION
    } पर स्विच करने के मकसद से, हमसे संपर्क करने के लिए धन्यवाद.
उपयोगकर्ता की जानकारी के अनुरोधों को मैनेज करना

userinfo एंडपॉइंट, OAuth 2.0 से सुरक्षित किया गया एक ऐसा संसाधन है जो लिंक किए गए उपयोगकर्ता के बारे में दावे दिखाता है. नीचे दिए गए इस्तेमाल के उदाहरणों को छोड़कर, userinfo एंडपॉइंट को लागू और होस्ट करना ज़रूरी नहीं है:

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

userinfo एंडपॉइंट अनुरोध के हेडर
Authorization header बेयरर टाइप का ऐक्सेस टोकन.

उदाहरण के लिए, अगर आपका userinfo एंडपॉइंट यहां उपलब्ध है https://myservice.example.com/userinfo, अनुरोध कुछ ऐसा दिख सकता है:

GET /userinfo HTTP/1.1
Host: myservice.example.com
Authorization: Bearer ACCESS_TOKEN

अपने userinfo एंडपॉइंट पर अनुरोधों को मैनेज करने के लिए यह तरीका अपनाएं:

  1. ऑथराइज़ेशन हेडर से ऐक्सेस टोकन निकालें और ऐक्सेस टोकन से जुड़े उपयोगकर्ता की जानकारी दिखाएं.
  2. अगर ऐक्सेस टोकन अमान्य है, तो WWW-Authenticate रिस्पॉन्स हेडर का इस्तेमाल करके, एचटीटीपी 401 बिना अनुमति वाली गड़बड़ी दिखाएं. नीचे userinfo गड़बड़ी के जवाब का एक उदाहरण दिया गया है:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: error="invalid_token",
    error_description="The Access Token expired"
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है अगर लिंक करने की प्रोसेस के दौरान, बिना अनुमति वाली 401 या गड़बड़ी वाला कोई भी गड़बड़ी का मैसेज मिलता है, तो इस गड़बड़ी को ठीक नहीं किया जा सकेगा. साथ ही, वापस मिले टोकन को खारिज कर दिया जाएगा और उपयोगकर्ता को फिर से लिंक करने की प्रोसेस शुरू करनी होगी.
  3. अगर ऐक्सेस टोकन मान्य है, तो वापस जाएं और एचटीटीपीएस के मुख्य हिस्से में, यहां दिए गए JSON ऑब्जेक्ट के साथ एचटीटीपी 200 रिस्पॉन्स भेजें जवाब:

    {
    "sub": "USER_UUID",
    "email": "EMAIL_ADDRESS",
    "given_name": "FIRST_NAME",
    "family_name": "LAST_NAME",
    "name": "FULL_NAME",
    "picture": "PROFILE_PICTURE",
    }
    
    अगर आपका userinfo एंडपॉइंट, एचटीटीपी 200 सक्सेस रिस्पॉन्स देता है, तो हासिल किए गए टोकन और दावे, उपयोगकर्ता के Google खाते से रजिस्टर किए जाते हैं.

    userinfo एंडपॉइंट रिस्पॉन्स
    sub एक यूनीक आईडी, जो आपके सिस्टम में उपयोगकर्ता की पहचान करता है.
    email उपयोगकर्ता का ईमेल पता.
    given_name ज़रूरी नहीं: उपयोगकर्ता का नाम.
    family_name ज़रूरी नहीं: उपयोगकर्ता का सरनेम.
    name ज़रूरी नहीं: उपयोगकर्ता का पूरा नाम.
    picture ज़रूरी नहीं: उपयोगकर्ता की प्रोफ़ाइल फ़ोटो.

लागू करने की पुष्टि की जा रही है

आप का उपयोग करके अपने कार्यान्वयन को मान्य कर सकते OAuth 2.0 खेल का मैदान उपकरण।

टूल में, निम्न चरणों का पालन करें:

  1. कॉन्फ़िगरेशन क्लिक करें OAuth 2.0 विन्यास विंडो खोलने के लिए।
  2. OAuth प्रवाह क्षेत्र में, क्लाइंट-साइड का चयन करें।
  3. OAuth Endpoints क्षेत्र में, कस्टम का चयन करें।
  4. अपना OAuth 2.0 समापन बिंदु और संबंधित फ़ील्ड में आपके द्वारा Google को निर्दिष्ट क्लाइंट आईडी निर्दिष्ट करें।
  5. चरण 1 अनुभाग में, किसी भी गूगल कार्यक्षेत्रों का चयन नहीं करते। इसके बजाय, इस फ़ील्ड को खाली छोड़ दें या अपने सर्वर के लिए मान्य दायरा टाइप करें (या यदि आप OAuth स्कोप का उपयोग नहीं करते हैं तो एक मनमाना स्ट्रिंग)। यह करने के बाद, अधिकृत एपीआई पर क्लिक करें।
  6. चरण 2 और चरण 3 वर्गों में, OAuth 2.0 प्रवाह के माध्यम से जाना और सत्यापित करें कि प्रत्येक चरण के रूप में इरादा काम करता है।

आप का उपयोग करके अपने कार्यान्वयन को मान्य कर सकते गूगल खाता लिंक करना डेमो उपकरण।

टूल में, निम्न चरणों का पालन करें:

  1. क्लिक करें गूगल से प्रवेश करें बटन में।
  2. वह खाता चुनें जिसे आप लिंक करना चाहते हैं।
  3. सेवा आईडी दर्ज करें।
  4. वैकल्पिक रूप से एक या अधिक क्षेत्र दर्ज करें जिसके लिए आप एक्सेस का अनुरोध करेंगे।
  5. प्रारंभ डेमो क्लिक करें।
  6. संकेत मिलने पर, पुष्टि करें कि आप सहमति दे सकते हैं और लिंकिंग अनुरोध को अस्वीकार कर सकते हैं।
  7. पुष्टि करें कि आपको अपने प्लेटफ़ॉर्म पर पुनर्निर्देशित किया गया है।