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. 前往 Google API 控制台
  2. 点击 Create project
  3. 输入名称或接受生成的建议。
  4. 确认或修改任何剩余字段。
  5. 点击创建

如需查看项目 ID,请执行以下操作:

  1. 前往 Google API 控制台
  2. 在着陆页的表格中找到您的项目。项目 ID 会显示在 ID 列中。

Google 账号关联过程包含一个权限请求页面,该页面会告知用户请求访问其数据的应用、应用请求的数据类型以及适用的条款。您需要先配置 OAuth 权限请求页面,然后才能生成 Google API 客户端 ID。

  1. 打开 Google API 控制台的 OAuth 权限请求页面 页面。
  2. 如果系统提示您选择项目,请选择您刚刚创建的项目。
  3. 在“OAuth 权限请求页面”上,填写表单,然后点击“保存”按钮。

    应用名称 :向用户征求同意的应用的名称。该名称应准确反映您的应用,并且与用户在其他位置看到的应用名称保持一致。应用名称将显示在账号关联权限请求页面上。

    应用徽标:权限请求页面上显示的一张图片,用以让用户认出您的应用。徽标会显示在账号关联权限请求页面和账号设置

    支持邮箱 :用户用于针对其同意问题与您联系的邮箱。

    Google API 的范围 :范围允许您的应用访问用户的私有 Google 数据。对于 Google 账号关联用例,默认范围(邮箱、个人资料、openid)就足够了,您无需添加任何敏感范围。通常,最佳做法是在需要访问权限时逐步请求范围,而不是提前请求。了解详情

    已获授权的网域 :为了保护您和您的用户,Google 只允许使用 OAuth 进行身份验证的应用使用已获授权的网域。您应用的链接必须托管在已获授权的网域上。了解详情

    应用首页链接 :应用的首页。必须托管在已获授权的网域上。

    应用隐私权政策链接 :显示在 Google 账号关联权限请求页面上。必须托管在已获授权的网域上。

    应用服务条款链接(可选) :必须托管在已获授权的网域上。

    图 1. 虚构应用 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 फ़्लो फ़ील्ड में, क्लाइंट-साइड चुनें.
  3. OAuth एंडपॉइंट फ़ील्ड में, कस्टम चुनें.
  4. अपने OAuth 2.0 एंडपॉइंट और Google को असाइन किया गया क्लाइंट आईडी, उससे जुड़े फ़ील्ड में डालें.
  5. पहला चरण सेक्शन में, कोई भी Google स्कोप न चुनें. इसके बजाय, इस फ़ील्ड को खाली छोड़ दें या अपने सर्वर के लिए मान्य स्कोप टाइप करें. अगर OAuth स्कोप का इस्तेमाल नहीं किया जाता है, तो कोई भी स्ट्रिंग टाइप करें. जब आपका काम पूरा हो जाए, तो एपीआई को अनुमति दें पर क्लिक करें.
  6. दूसरे चरण और तीसरे चरण सेक्शन में, OAuth 2.0 फ़्लो देखें. साथ ही, यह पुष्टि करें कि हर चरण उम्मीद के मुताबिक काम कर रहा है.

Google खाता लिंक करने की सुविधा का डेमो टूल का इस्तेमाल करके, लागू की गई सुविधा की पुष्टि की जा सकती है.

टूल में, यह तरीका अपनाएं:

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