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

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

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

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

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

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

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

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

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

डिज़ाइन से जुड़े दिशा-निर्देश

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

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

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

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

सुझाव

हमारा सुझाव है कि आप ये काम करें:

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

  2. शेयर किया जाने वाला डेटा. साफ़ और कम शब्दों में उपयोगकर्ता को बताएं कि Google को उनके लिए कौनसे डेटा की ज़रूरत है और क्यों.

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

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

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

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

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

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

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

खाता जोड़ने की सुविधा का इस्तेमाल करने के लिए, अपना प्रोजेक्ट बनाएं:

  1. प्रोजेक्ट बनाएं पर क्लिक करें.
  2. कोई नाम डालें या जनरेट किए गए सुझाव को स्वीकार करें.
  3. बचे हुए फ़ील्ड में मौजूद जानकारी की पुष्टि करें या उसमें बदलाव करें.
  4. बनाएं पर क्लिक करें.

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

  1. लैंडिंग पेज पर मौजूद टेबल में अपना प्रोजेक्ट ढूंढें. प्रोजेक्ट आईडी, आईडी कॉलम में दिखता है.

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

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

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

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

    सहायता के लिए ईमेल पता: इससे उपयोगकर्ता, सहमति से जुड़े सवालों के लिए आपसे संपर्क कर सकते हैं.

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

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

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

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

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

    पहली इमेज. Tunery नाम के काल्पनिक ऐप्लिकेशन के लिए, 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 Playground 工具验证您的实现。

在该工具中,执行以下步骤:

  1. 点击配置 以打开 OAuth 2.0 配置窗口。
  2. OAuth flow 字段中,选择 Client-side(客户端)。
  3. OAuth 端点字段中,选择自定义
  4. 在相应字段中指定您的 OAuth 2.0 端点和您分配给 Google 的客户端 ID。
  5. 第 1 步部分,不要选择任何 Google 范围。请将此字段留空或输入对服务器有效的范围(如果您不使用 OAuth 范围,则可以输入任意字符串)。完成后,点击授权 API
  6. Step 2Step 3 部分中,完成 OAuth 2.0 流程,并验证每个步骤是否按预期运行。

您可以使用 Google 账号关联演示版工具验证您的实现。

在该工具中,执行以下步骤:

  1. 点击使用 Google 账号登录按钮。
  2. 选择您要关联的账号。
  3. 输入服务 ID。
  4. (可选)输入您要请求访问权限的一个或多个范围。
  5. 点击开始演示
  6. 当系统提示时,请确认您同意或拒绝关联请求。
  7. 确认您已被重定向到您的平台。