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 帐号关联流程包括一个同意屏幕,用于告知用户请求访问其数据的应用、用户要求的数据类型以及适用的条款。您需要先配置 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 सर्वर कार्यान्वयन दो समाप्ति बिंदुओं, जो आपकी सेवा HTTPS द्वारा उपलब्ध बनाता के होते हैं। पहला समापन बिंदु प्राधिकरण समापन बिंदु है, जो डेटा एक्सेस के लिए उपयोगकर्ताओं से सहमति प्राप्त करने या प्राप्त करने के लिए जिम्मेदार है। प्राधिकरण समापन बिंदु आपके उन उपयोगकर्ताओं के लिए एक साइन-इन UI प्रस्तुत करता है जो पहले से साइन इन नहीं हैं और अनुरोधित पहुंच के लिए सहमति रिकॉर्ड करते हैं। दूसरा एंडपॉइंट टोकन एक्सचेंज एंडपॉइंट है, जिसका उपयोग एन्क्रिप्टेड स्ट्रिंग्स प्राप्त करने के लिए किया जाता है, जिसे टोकन कहा जाता है, जो उपयोगकर्ता को आपकी सेवा तक पहुंचने के लिए अधिकृत करता है।

जब किसी Google एप्लिकेशन को आपकी किसी सेवा के API को कॉल करने की आवश्यकता होती है, तो Google आपके उपयोगकर्ताओं से उनकी ओर से इन API को कॉल करने की अनुमति प्राप्त करने के लिए इन अंतिम बिंदुओं का एक साथ उपयोग करता है।

Google द्वारा शुरू किए गए OAuth 2.0 प्राधिकरण कोड प्रवाह सत्र में निम्न प्रवाह है:

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

प्राधिकरण अनुरोधों को संभालें

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

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

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

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

  • एक्सेस टोकन और रीफ्रेश टोकन के लिए एक्सचेंज प्राधिकरण कोड
  • एक्सेस टोकन के लिए एक्सचेंज रीफ्रेश टोकन

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

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

जब उपयोगकर्ता साइन इन करता है और आपका प्राधिकरण एंडपॉइंट Google को एक अल्पकालिक प्राधिकरण कोड देता है, तो Google आपके टोकन एक्सचेंज एंडपॉइंट को एक्सेस टोकन और रीफ्रेश टोकन के लिए प्राधिकरण कोड का आदान-प्रदान करने का अनुरोध भेजता है।

इन अनुरोधों के लिए, का मूल्य grant_type है authorization_code , और का मान code प्राधिकरण कोड आपने पहले 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=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI

एक पहुँच के लिए प्राधिकरण कोड का आदान-प्रदान करने के लिए टोकन और एक ताज़ा टोकन, करने के लिए अपने टोकन विनिमय endpoint प्रतिक्रिया POST के लिए निम्न चरणों को क्रियान्वित करते हुए अनुरोध:

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

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

एक्सेस टोकन के लिए एक्सचेंज रीफ्रेश टोकन

जब एक एक्सेस टोकन की समय सीमा समाप्त हो जाती है, तो 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

एक ताज़ा पहुँच टोकन के टोकन का आदान-प्रदान करने के लिए, करने के लिए अपने टोकन विनिमय endpoint प्रतिक्रिया POST के लिए निम्न चरणों को क्रियान्वित करते हुए अनुरोध:

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

用户信息终端是一个OAuth 2.0保护的资源,对链接的用户返回的权利要求。实现和托管 userinfo 端点是可选的,以下用例除外:

从您的令牌端点成功检索访问令牌后,Google 会向您的 userinfo 端点发送请求,以检索有关链接用户的基本个人资料信息。

userinfo 端点请求标头
Authorization header Bearer 类型的访问令牌。

例如,如果你的用户信息终端可在https://myservice.example.com/userinfo ,请求看起来像下面这样:

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

要让您的 userinfo 端点处理请求,请执行以下步骤:

  1. 从 Authorization 标头中提取访问令牌并返回与访问令牌关联的用户的信息。
  2. 如果访问令牌无效,返回HTTP 401错误未经授权使用的WWW-Authenticate响应头。下面是一个userinfo的错误响应的一个示例:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: error="invalid_token",
    error_description="The Access Token expired"
    
    如果一个401未经授权,或任何其它不成功错误响应在关联过程返回时,误差将是不可恢复的,所检索的令牌将被丢弃,并且用户将必须再次启动链接过程。
  3. 如果访问令牌是有效的,回国与以下JSON对象在HTTPS响应的身体HTTP 200回应:

    {
    "sub": "USER_UUID",
    "email": "EMAIL_ADDRESS",
    "given_name": "FIRST_NAME",
    "family_name": "LAST_NAME",
    "name": "FULL_NAME",
    "picture": "PROFILE_PICTURE",
    }
    
    如果你的用户信息端点返回一个HTTP 200成功响应,检索到的令牌和索赔登记针对用户的谷歌帐户。

    用户信息端点响应
    sub标识系统中用户的唯一 ID。
    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. पुष्टि करें कि आपको अपने प्लेटफ़ॉर्म पर पुनर्निर्देशित किया गया है।