Google खाता OAuth के साथ जुड़ रहा है

खाते उद्योग मानक OAuth 2.0 निहित और प्राधिकरण कोड प्रवाह का उपयोग करके जुड़े हुए हैं। आपकी सेवा को OAuth 2.0 अनुपालन प्राधिकरण और टोकन विनिमय समापन बिंदुओं का समर्थन करना चाहिए।

निहित प्रवाह में, Google उपयोगकर्ता के ब्राउज़र में आपका प्राधिकरण समापन बिंदु खोलता है। सफल साइन इन करने के बाद, आप Google को एक लंबे समय तक एक्सेस टोकन लौटाते हैं। यह एक्सेस टोकन अब Google से भेजे गए प्रत्येक अनुरोध में शामिल है।

प्राधिकरण कोड प्रवाह में, आपको दो समापन बिंदु चाहिए:

  • प्राधिकरण समापन बिंदु, जो आपके उपयोगकर्ताओं के लिए साइन-इन UI प्रस्तुत करता है जो पहले से साइन इन नहीं हैं। प्राधिकरण समापन बिंदु भी अनुरोधित पहुंच के लिए उपयोगकर्ताओं की सहमति दर्ज करने के लिए एक अल्पकालिक प्राधिकरण कोड बनाता है।

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

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

एक OAuth 2.0 प्रवाह चुनें

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

डिजाइन दिशानिर्देश

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

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

आवश्यकताओं को

  1. आपको यह बताना होगा कि उपयोगकर्ता का खाता Google से जुड़ा होगा, कि Google होम या Google सहायक जैसे विशिष्ट Google उत्पाद से।

सिफारिशों

हम अनुशंसा करते हैं कि आप निम्नलिखित कार्य करें:

  1. Google की गोपनीयता नीति प्रदर्शित करें। सहमति स्क्रीन पर Google की गोपनीयता नीति का लिंक शामिल करें।

  2. डेटा साझा किया जाना है। उपयोगकर्ता को यह बताने के लिए स्पष्ट और संक्षिप्त भाषा का उपयोग करें कि उनके Google के डेटा की क्या आवश्यकता है और क्यों।

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

  4. रद्द करने की क्षमता। उपयोगकर्ताओं को वापस जाने या रद्द करने का एक तरीका प्रदान करें, यदि वे लिंक नहीं करना चुनते हैं।

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

  6. अनलिंक करने की क्षमता। उपयोगकर्ताओं को अनलिंक करने के लिए एक तंत्र प्रदान करें, जैसे कि आपके प्लेटफ़ॉर्म पर उनकी खाता सेटिंग में URL। वैकल्पिक रूप से, आप 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 खाता लिंकिंग उपयोग मामले के लिए, डिफ़ॉल्ट स्कोप (ईमेल, प्रोफ़ाइल, ओपनिड) पर्याप्त है, आपको किसी भी संवेदनशील स्कोप को जोड़ने की आवश्यकता नहीं है। यह आमतौर पर एक सबसे अच्छा अभ्यास है कि समय के साथ-साथ सामने वाले की आवश्यकता होती है। और जानें

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

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

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

    सेवा की लिंक की शर्तें (वैकल्पिक): अधिकृत डोमेन पर होस्ट की जानी चाहिए।

    चित्र 1 । एक काल्पनिक अनुप्रयोग, ट्यूनरी के लिए 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
    }
उपयोगकर्ता जानकारी अनुरोधों को संभालें

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

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

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. यदि पहुँच टोकन अमान्य है, उपयोग करने के साथ एक HTTP 401 अनधिकृत त्रुटि वापस WWW-Authenticate रिस्पांस हैडर। नीचे एक UserInfo त्रुटि प्रतिसाद का एक उदाहरण है:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: error="invalid_token",
    error_description="The Access Token expired"
    
    तो एक 401 अनधिकृत, या किसी अन्य असफल त्रुटि प्रतिसाद लिंकिंग प्रक्रिया के दौरान दिया जाता है, त्रुटि गैर वसूली योग्य हो जाएगा, पुनर्प्राप्त टोकन को छोड़ दिया जाएगा और उपयोगकर्ता होगा फिर से जोड़ने की प्रक्रिया शुरू करने के लिए।
  3. पहुँच टोकन मान्य, वापसी और HTTP 200 HTTPS प्रतिक्रिया के शरीर में निम्नलिखित JSON ऑब्जेक्ट के साथ प्रतिक्रिया है:

    {
    "sub": "USER_UUID",
    "email": "EMAIL_ADDRESS",
    "given_name": "FIRST_NAME",
    "family_name": "LAST_NAME",
    "name": "FULL_NAME",
    "picture": "PROFILE_PICTURE",
    }
    
    अपने UserInfo endpoint रिटर्न पर HTTP 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. पुष्टि करें कि आपको अपने प्लेटफ़ॉर्म पर पुनर्निर्देशित किया गया है।