खाते, इंडस्ट्री स्टैंडर्ड OAuth 2.0 इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करके जोड़े जाते हैं. आपकी सेवा में, OAuth 2.0 का पालन करने वाले अनुमति और टोकन एक्सचेंज एंडपॉइंट काम करने चाहिए.
इंप्लिसिट फ़्लो में, Google, उपयोगकर्ता के ब्राउज़र में ऑथराइज़ेशन एंडपॉइंट खोलता है. साइन इन करने के बाद, आप Google को लंबे समय तक ऐक्सेस टोकन देते हैं. यह ऐक्सेस टोकन अब Google के भेजे गए हर अनुरोध में शामिल है.
ऑथराइज़ेशन कोड फ़्लो में, आपको दो एंडपॉइंट की ज़रूरत होती है:
अनुमति देने वाला एंडपॉइंट, जो आपके उन उपयोगकर्ताओं को साइन-इन यूज़र इंटरफ़ेस (यूआई) दिखाता है जो पहले से साइन इन नहीं हैं. ऑथराइज़ेशन एंडपॉइंट, अनुरोध किए गए ऐक्सेस के लिए, उपयोगकर्ताओं और #39 को रिकॉर्ड करने के लिए, कम समय के लिए बनाया गया ऑथराइज़ेशन कोड भी बनाता है.
टोकन एक्सचेंज एंडपॉइंट, जो दो तरह के एक्सचेंज के लिए ज़िम्मेदार है:
- लंबे समय तक चलने वाले रीफ़्रेश टोकन और कुछ समय के लिए इस्तेमाल किए जा सकने वाले ऐक्सेस टोकन के लिए ऑथराइज़ेशन कोड एक्सचेंज करता है. यह एक्सचेंज तब होता है, जब उपयोगकर्ता खाते को जोड़ने के फ़्लो से गुज़रता है.
- कुछ समय के लिए इस्तेमाल किए जा सकने वाले ऐक्सेस टोकन के लिए, लंबे समय तक चलने वाले रीफ़्रेश टोकन की अदला-बदली होती है. यह एक्सचेंज तब होता है, जब Google को नए ऐक्सेस टोकन की ज़रूरत होती है, क्योंकि इसे ऐक्सेस करने की समयसीमा खत्म हो चुकी है.
OAuth 2.0 फ़्लो चुनना
हालांकि, इंप्लिसिट फ़्लो को लागू करना ज़्यादा आसान है, लेकिन Google का सुझाव है कि इंप्लिसिट फ़्लो से जारी किए गए ऐक्सेस टोकन की समयसीमा कभी खत्म न हो. ऐसा इसलिए होता है, क्योंकि टोकन की समयसीमा खत्म होने के बाद, उपयोगकर्ता को अपने खाते को फिर से जोड़ना पड़ता है. अगर आपको सुरक्षा की वजहों से टोकन की समयसीमा खत्म करने की ज़रूरत है, तो हमारा सुझाव है कि आप इसके बजाय ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करें.
डिज़ाइन गाइडलाइन
इस सेक्शन में, उपयोगकर्ता के स्क्रीन को डिज़ाइन करने से जुड़ी ज़रूरी शर्तों और सुझावों के बारे में बताया गया है. यह स्क्रीन आपको OAuth लिंक करने के फ़्लो के लिए होस्ट करती है. Google के ऐप्लिकेशन के कॉल करने के बाद, आपका प्लैटफ़ॉर्म Google पेज में साइन इन करता है और उपयोगकर्ता को खाता जोड़ने की सहमति स्क्रीन दिखाता है. खातों को जोड़ने की सहमति देने के बाद, उपयोगकर्ता को Google's के ऐप्लिकेशन पर वापस भेज दिया जाता है.
![यह डायग्राम, उपयोगकर्ता के लिए Google खाते को आपके पुष्टि करने वाले सिस्टम से जोड़ने का तरीका बताता है. पहले स्क्रीनशॉट में उपयोगकर्ता को
अपने प्लैटफ़ॉर्म से जोड़ना दिखाया गया है. दूसरी इमेज में उपयोगकर्ता को Google में साइन इन दिखाया गया है. वहीं, तीसरी इमेज में उपयोगकर्ता के Google खाते को आपके ऐप्लिकेशन से जोड़ने के लिए
सहमति और पुष्टि दिखाई गई है.
आखिरी स्क्रीनशॉट में Google ऐप्लिकेशन में जोड़ा गया उपयोगकर्ता खाता
दिखता है.](https://developers-dot-devsite-v2-prod.appspot.com/static/identity/images/oauth-linking-flow.png?authuser=7&hl=hi)
ज़रूरी शर्तें
- आपको बताना होगा कि उपयोगकर्ता का खाता Google से जोड़ा जाएगा, Google Home या Google Assistant जैसे Google के किसी खास प्रॉडक्ट से नहीं.
सुझाव
हम आपको ये काम करने का सुझाव देते हैं:
Google की # नीति दिखाने के लिए. सहमति वाली स्क्रीन पर Google की निजता नीति का लिंक शामिल करें.
शेयर किया जाने वाला डेटा. उपयोगकर्ता को यह बताने के लिए कि उन्हें अपने डेटा की ज़रूरत क्यों और क्यों है, आसान और संक्षिप्त भाषा का इस्तेमाल करें.
कॉल-टू-ऐक्शन मिटाएं. अपनी सहमति स्क्रीन पर साफ़ कॉल-टू-ऐक्शन बताएं, जैसे कि "सहमत हैं और लिंक करें". इसकी वजह यह है कि उपयोगकर्ताओं को यह समझना ज़रूरी है कि उन्हें अपने खाते लिंक करने के लिए, Google के साथ कौनसा डेटा शेयर करना है.
सदस्यता रद्द करने की सुविधा. अगर उपयोगकर्ता लिंक नहीं करना चाहते हैं, तो उन्हें वापस या रद्द करने का तरीका बताएं.
साइन इन करने की प्रोसेस हटाएं. पक्का करें कि उपयोगकर्ताओं के पास अपने Google खाते में साइन इन करने का साफ़ तरीका है, जैसे कि उनके उपयोगकर्ता नाम और पासवर्ड के लिए फ़ील्ड या Google से साइन इन करें.
खाता अलग करने की सुविधा. उपयोगकर्ताओं को अनलिंक करने का तरीका दें, जैसे कि अपने प्लैटफ़ॉर्म पर अपनी खाता सेटिंग का एक यूआरएल. इसके अलावा, आप Google खाते से जुड़ा एक लिंक भी शामिल कर सकते हैं. इससे उपयोगकर्ता अपने जोड़े गए खाते को मैनेज कर पाएंगे.
उपयोगकर्ता खाता बदलने की सुविधा. उपयोगकर्ताओं को अपने खाते(खातों) को स्विच करने का तरीका बताएं. यह खास तौर पर तब फ़ायदेमंद होता है, जब उपयोगकर्ता एक से ज़्यादा खाते इस्तेमाल करते हैं.
- अगर किसी उपयोगकर्ता को खाते स्विच करने के लिए, सहमति देने वाली स्क्रीन बंद करनी होती है, तो उसे वापस पाया जा सकने वाला गड़बड़ी का मैसेज Google को भेजें, ताकि उपयोगकर्ता OAuth लिंकिंग और इंप्लिसिट फ़्लो से अपनी पसंद के खाते में साइन इन कर सके.
अपना लोगो शामिल करें. सहमति वाली स्क्रीन पर अपनी कंपनी का लोगो दिखाएं. अपना लोगो रखने के लिए अपनी शैली के दिशा-निर्देशों का इस्तेमाल करें. अगर आप Google का # लोगो भी दिखाना चाहते हैं, तो लोगो और ट्रेडमार्क देखें.
![यह चित्र उदाहरण के तौर पर, उपयोगकर्ता के साइन इन करने और सहमति से जुड़ी स्क्रीन को अलग-अलग ज़रूरतों के लिए दिखाता है. साथ ही, जब आप उपयोगकर्ता साइन इन और सहमति स्क्रीन को डिज़ाइन करते हैं, तो इन सुझावों को दिखाने के लिए सुझाव दिए जाते हैं.](https://developers-dot-devsite-v2-prod.appspot.com/static/identity/images/oauth-linking-consent.png?authuser=7&hl=hi)
प्रोजेक्ट बनाना
खाता लिंक करने के मकसद से अपना प्रोजेक्ट बनाने के लिए:
- Go to the Google API Console.
- प्रोजेक्ट बनाएं पर क्लिक करें ।
- एक नाम दर्ज करें या उत्पन्न सुझाव को स्वीकार करें।
- किसी भी शेष फ़ील्ड की पुष्टि करें या संपादित करें।
- क्रिएट पर क्लिक करें ।
अपना प्रोजेक्ट आईडी देखने के लिए:
- Go to the Google API Console.
- लैंडिंग पृष्ठ पर तालिका में अपना प्रोजेक्ट ढूंढें। प्रोजेक्ट आईडी ID कॉलम में दिखाई देती है।
ऐसी स्क्रीन कॉन्फ़िगर करें जहां OAuth के लिए सहमति दी जाती है
Google खाता लिंक करने की प्रोसेस में, सहमति वाली स्क्रीन शामिल होती है. इस स्क्रीन पर, उपयोगकर्ताओं को उनके डेटा के ऐक्सेस का अनुरोध करने वाला ऐप्लिकेशन, किस तरह का डेटा चाहिए, और इस पर लागू होने वाली शर्तों के बारे में जानकारी मिलती है. Google API क्लाइंट आईडी जनरेट करने से पहले, आपको उस स्क्रीन को कॉन्फ़िगर करना होगा जहां OAuth के लिए सहमति दी जाती है.
- Google API कंसोल का OAuth सहमति स्क्रीन पेज खोलें.
- अगर कहा जाए, तो वह प्रोजेक्ट चुनें जिसे आपने अभी-अभी बनाया है.
"OAuth की सहमति वाली स्क्रीन" पेज पर, फ़ॉर्म भरें और "सेव करें" बटन पर क्लिक करें.
ऐप्लिकेशन का नाम: सहमति मांगने वाले ऐप्लिकेशन का नाम. नाम, आपके ऐप्लिकेशन के बारे में एकदम सही तरीके से बताता हो. साथ ही, ऐप्लिकेशन का वही नाम होना चाहिए जो उपयोगकर्ताओं को कहीं और दिखता है. ऐप्लिकेशन का नाम, खाता जोड़ने की सहमति वाली स्क्रीन पर दिखेगा.
ऐप्लिकेशन का लोगो: सहमति वाली स्क्रीन पर दिखने वाली ऐसी इमेज जो उपयोगकर्ताओं को आपके ऐप्लिकेशन को पहचानने में मदद करेगी. यह लोगो, खाता लिंक करने की सहमति वाली स्क्रीन और खाता सेटिंग पर दिखता है
सहायता ईमेल: इसकी मदद से उपयोगकर्ता, अपनी सहमति के बारे में सवाल पूछने के लिए आपसे संपर्क कर सकते हैं.
Google API के स्कोप: स्कोप की मदद से, आपका ऐप्लिकेशन आपके उपयोगकर्ता का निजी Google डेटा ऐक्सेस कर सकता है. Google खाता जोड़ने के लिए इस्तेमाल के उदाहरण में, डिफ़ॉल्ट दायरा (ईमेल, प्रोफ़ाइल, openid) ही काफ़ी है. आपको संवेदनशील दायरा जोड़ने की ज़रूरत नहीं है. आम तौर पर, स्कोप के बढ़ते अनुरोध का सबसे सही तरीका यह है कि उस समय ऐक्सेस की ज़रूरत हो, न कि शुरुआत में. ज़्यादा जानें.
अनुमति वाले डोमेन: आपकी और आपके उपयोगकर्ताओं की सुरक्षा के लिए, Google सिर्फ़ उन ऐप्लिकेशन को अनुमति देता है जो अनुमति वाले डोमेन के इस्तेमाल की पुष्टि करने के लिए, OAuth का इस्तेमाल करते हैं. आपके ऐप्लिकेशन के लिंक अधिकृत डोमेन पर होस्ट होने चाहिए. ज़्यादा जानें.
ऐप्लिकेशन का होम पेज लिंक: आपके ऐप्लिकेशन का होम पेज. किसी अधिकृत डोमेन पर होस्ट किया जाना चाहिए.
ऐप्लिकेशन की निजता नीति का लिंक: यह Google खाता लिंक करने के लिए सहमति वाली स्क्रीन पर दिखाया जाता है. किसी अधिकृत डोमेन पर होस्ट किया जाना चाहिए.
ऐप्लिकेशन की सेवा की शर्तों का लिंक (ज़रूरी नहीं): इसे किसी ऐसे डोमेन पर होस्ट किया जाना चाहिए जिसे अनुमति मिली हो.
पहला डायग्राम. काल्पनिक ऐप्लिकेशन और ट्यूरी के लिए, Google खाता लिंक करने की सहमति वाली स्क्रीन
अगर आपके आवेदन को पुष्टि की ज़रूरत है, तो "पुष्टि की स्थिति" पर क्लिक करें. इसके बाद, पुष्टि के लिए अपना आवेदन सबमिट करने के लिए, "पुष्टि के लिए सबमिट करें" बटन पर क्लिक करें. ज़्यादा जानकारी के लिए, OAuth की पुष्टि करने से जुड़ी ज़रूरी शर्तें देखें.
अपना OAuth सर्वर लागू करें
लिए OAuth प्राधिकरण कोड के प्रवाह के 2.0 सर्वर कार्यान्वयन दो समाप्ति बिंदुओं, जो आपकी सेवा HTTPS द्वारा उपलब्ध बनाता के होते हैं। पहला समापन बिंदु प्राधिकरण समापन बिंदु है, जो डेटा एक्सेस के लिए उपयोगकर्ताओं से सहमति प्राप्त करने या प्राप्त करने के लिए जिम्मेदार है। प्राधिकरण समापन बिंदु आपके उन उपयोगकर्ताओं के लिए एक साइन-इन UI प्रस्तुत करता है जो पहले से साइन इन नहीं हैं और अनुरोधित पहुंच के लिए सहमति रिकॉर्ड करते हैं। दूसरा एंडपॉइंट टोकन एक्सचेंज एंडपॉइंट है, जिसका उपयोग एन्क्रिप्टेड स्ट्रिंग्स प्राप्त करने के लिए किया जाता है, जिसे टोकन कहा जाता है, जो उपयोगकर्ता को आपकी सेवा तक पहुंचने के लिए अधिकृत करता है।
जब किसी Google एप्लिकेशन को आपकी किसी सेवा के API को कॉल करने की आवश्यकता होती है, तो Google आपके उपयोगकर्ताओं से उनकी ओर से इन API को कॉल करने की अनुमति प्राप्त करने के लिए इन अंतिम बिंदुओं का एक साथ उपयोग करता है।
Google द्वारा शुरू किए गए OAuth 2.0 प्राधिकरण कोड प्रवाह सत्र में निम्न प्रवाह है:
- Google उपयोगकर्ता के ब्राउज़र में आपका प्राधिकरण समापन बिंदु खोलता है। यदि किसी क्रिया के लिए केवल-ध्वनि वाले उपकरण पर प्रवाह शुरू हुआ, तो Google निष्पादन को फ़ोन पर स्थानांतरित कर देता है।
- उपयोगकर्ता साइन इन करता है, अगर पहले से साइन इन नहीं है, और Google को आपके एपीआई के साथ अपने डेटा तक पहुंचने की अनुमति देता है, अगर उन्होंने पहले से अनुमति नहीं दी है।
- आपकी सेवा एक प्राधिकरण कोड बनाता है और इसे Google को देता है। ऐसा करने के लिए, अनुरोध के साथ संलग्न प्राधिकरण कोड के साथ उपयोगकर्ता के ब्राउज़र को वापस Google पर रीडायरेक्ट करें।
- गूगल अपने टोकन विनिमय समाप्ति बिंदु है, जो कोड की प्रामाणिकता की पुष्टि करता है और पहुँच टोकन और एक ताज़ा टोकन देता है करने के लिए प्राधिकरण कोड भेजता है। एक्सेस टोकन एक अल्पकालिक टोकन है जिसे आपकी सेवा एपीआई तक पहुंचने के लिए क्रेडेंशियल के रूप में स्वीकार करती है। रीफ्रेश टोकन एक लंबे समय तक चलने वाला टोकन है जिसे Google स्टोर कर सकता है और नए एक्सेस टोकन प्राप्त करने के लिए उपयोग कर सकता है जब वे समाप्त हो जाते हैं।
- उपयोगकर्ता द्वारा खाता लिंकिंग प्रवाह पूरा कर लेने के बाद, 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
साइन-इन अनुरोधों को संभालने के लिए अपने प्राधिकरण समापन बिंदु के लिए, निम्न चरणों का पालन करें:
- सत्यापित करें कि
client_id
ग्राहक आईडी आप Google को सौंपा से मेल खाता है, और कहा किredirect_uri
आपकी सेवा के लिए गूगल द्वारा प्रदान की रीडायरेक्ट URL से मेल खाता है। अनपेक्षित या गलत कॉन्फ़िगर किए गए क्लाइंट ऐप्स तक पहुंच प्रदान करने से रोकने के लिए ये जांच महत्वपूर्ण हैं। आप एक से अधिक OAuth 2.0 प्रवाह का समर्थन करते हैं, तो भी पुष्टि करते हैं किresponse_type
हैcode
। - जांचें कि उपयोगकर्ता आपकी सेवा में साइन इन है या नहीं। यदि उपयोगकर्ता साइन इन नहीं है, तो अपनी सेवा का साइन-इन या साइन-अप प्रवाह पूरा करें।
- अपने एपीआई तक पहुंचने के लिए उपयोग करने के लिए Google के लिए एक प्राधिकरण कोड जेनरेट करें। प्राधिकरण कोड कोई भी स्ट्रिंग मान हो सकता है, लेकिन इसे विशिष्ट रूप से उपयोगकर्ता का प्रतिनिधित्व करना चाहिए, जिस क्लाइंट के लिए टोकन है, और कोड की समाप्ति समय, और यह अनुमान लगाने योग्य नहीं होना चाहिए। आप आमतौर पर प्राधिकरण कोड जारी करते हैं जो लगभग 10 मिनट के बाद समाप्त हो जाते हैं।
- पुष्टि करें कि URL द्वारा निर्दिष्ट
redirect_uri
पैरामीटर निम्नलिखित रूप है:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- 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
के लिए निम्न चरणों को क्रियान्वित करते हुए अनुरोध:
- सत्यापित करें कि
client_id
की पहचान करता है अनुरोध मूल एक अधिकृत मूल के रूप में, और कहा किclient_secret
उम्मीद मान से मेल खाता। - सत्यापित करें कि प्राधिकरण कोड मान्य है और समाप्त नहीं हुआ है, और अनुरोध में निर्दिष्ट क्लाइंट आईडी प्राधिकरण कोड से जुड़े क्लाइंट आईडी से मेल खाता है।
- पुष्टि करें कि URL द्वारा निर्दिष्ट
redirect_uri
पैरामीटर शुरुआती प्राधिकरण अनुरोध में उपयोग किए मूल्य के समान है। - यदि आप उपरोक्त मानदंडों के सभी सत्यापित नहीं कर सकते हैं, तो साथ एक HTTP 400 ग़लत अनुरोध त्रुटि
{"error": "invalid_grant"}
निकाय के रूप में। - अन्यथा, रीफ़्रेश टोकन और एक्सेस टोकन जेनरेट करने के लिए प्राधिकरण कोड से उपयोगकर्ता आईडी का उपयोग करें। ये टोकन कोई भी स्ट्रिंग मान हो सकते हैं, लेकिन उन्हें विशिष्ट रूप से उपयोगकर्ता और क्लाइंट के लिए टोकन का प्रतिनिधित्व करना चाहिए, और उन्हें अनुमान लगाने योग्य नहीं होना चाहिए। एक्सेस टोकन के लिए, टोकन का समाप्ति समय भी रिकॉर्ड करें, जो आमतौर पर आपके द्वारा टोकन जारी करने के एक घंटे बाद होता है। ताज़ा करें टोकन की समय सीमा समाप्त नहीं होती है।
- 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
के लिए निम्न चरणों को क्रियान्वित करते हुए अनुरोध:
- सत्यापित करें कि
client_id
की पहचान करता है गूगल के रूप में अनुरोध मूल, और कहा किclient_secret
उम्मीद मान से मेल खाता। - सत्यापित करें कि रीफ्रेश टोकन मान्य है, और अनुरोध में निर्दिष्ट क्लाइंट आईडी रीफ्रेश टोकन से जुड़े क्लाइंट आईडी से मेल खाता है।
- यदि आप उपरोक्त मानदंडों के सभी सत्यापित नहीं कर सकते हैं, तो साथ एक HTTP 400 ग़लत अनुरोध त्रुटि
{"error": "invalid_grant"}
निकाय के रूप में। - अन्यथा, एक्सेस टोकन जेनरेट करने के लिए रीफ्रेश टोकन से यूजर आईडी का उपयोग करें। ये टोकन कोई भी स्ट्रिंग मान हो सकते हैं, लेकिन उन्हें विशिष्ट रूप से उपयोगकर्ता और क्लाइंट के लिए टोकन का प्रतिनिधित्व करना चाहिए, और उन्हें अनुमान लगाने योग्य नहीं होना चाहिए। एक्सेस टोकन के लिए, टोकन का समाप्ति समय भी रिकॉर्ड करें, आमतौर पर आपके द्वारा टोकन जारी करने के एक घंटे बाद।
- HTTPS प्रतिक्रिया के मुख्य भाग में निम्नलिखित JSON ऑब्जेक्ट लौटाएँ:
{ "token_type": "Bearer", "access_token": " ACCESS_TOKEN ", "expires_in": SECONDS_TO_EXPIRATION }
उपयोगकर्ता जानकारी अनुरोधों को संभालें
UserInfo endpoint OAuth 2.0 संरक्षित संसाधन है कि लिंक किया गया प्रयोक्ता के बारे में वापसी का दावा है। निम्नलिखित उपयोग के मामलों को छोड़कर, userinfo एंडपॉइंट को लागू करना और होस्ट करना वैकल्पिक है:
- खाता साइन-इन लिंक्ड गूगल एक टैप से।
- प्रतिरोधहीन सदस्यता AndroidTV पर।
आपके टोकन एंडपॉइंट से एक्सेस टोकन को सफलतापूर्वक पुनर्प्राप्त करने के बाद, Google लिंक किए गए उपयोगकर्ता के बारे में बुनियादी प्रोफ़ाइल जानकारी पुनर्प्राप्त करने के लिए आपके उपयोगकर्ता जानकारी एंडपॉइंट पर एक अनुरोध भेजता है।
userinfo समापन बिंदु अनुरोध शीर्षलेख | |
---|---|
Authorization header | बियरर प्रकार का एक्सेस टोकन। |
उदाहरण के लिए, यदि आपके UserInfo समाप्ति बिंदु पर उपलब्ध है https://myservice.example.com/userinfo
, एक अनुरोध निम्नलिखित प्रकार दिखाई देंगे:
GET /userinfo HTTP/1.1 Host: myservice.example.com Authorization: Bearer ACCESS_TOKEN
अनुरोधों को संभालने के लिए आपके userinfo समापन बिंदु के लिए, निम्न चरणों का पालन करें:
- प्राधिकरण हेडर से एक्सेस टोकन निकालें और एक्सेस टोकन से जुड़े उपयोगकर्ता के लिए जानकारी लौटाएं।
- यदि पहुँच टोकन अमान्य है, उपयोग करने के साथ एक HTTP 401 अनधिकृत त्रुटि वापस
WWW-Authenticate
रिस्पांस हैडर। नीचे एक UserInfo त्रुटि प्रतिसाद का एक उदाहरण है:HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
तो एक 401 अनधिकृत, या किसी अन्य असफल त्रुटि प्रतिसाद लिंकिंग प्रक्रिया के दौरान दिया जाता है, त्रुटि गैर वसूली योग्य हो जाएगा, पुनर्प्राप्त टोकन को छोड़ दिया जाएगा और उपयोगकर्ता होगा फिर से जोड़ने की प्रक्रिया शुरू करने के लिए। पहुँच टोकन मान्य, वापसी और 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 खेल का मैदान उपकरण।
टूल में, निम्न चरणों का पालन करें:
- कॉन्फ़िगरेशन क्लिक करें OAuth 2.0 विन्यास विंडो खोलने के लिए।
- OAuth प्रवाह क्षेत्र में, क्लाइंट-साइड का चयन करें।
- OAuth Endpoints क्षेत्र में, कस्टम का चयन करें।
- अपना OAuth 2.0 समापन बिंदु और संबंधित फ़ील्ड में आपके द्वारा Google को निर्दिष्ट क्लाइंट आईडी निर्दिष्ट करें।
- चरण 1 अनुभाग में, किसी भी गूगल कार्यक्षेत्रों का चयन नहीं करते। इसके बजाय, इस फ़ील्ड को खाली छोड़ दें या अपने सर्वर के लिए मान्य दायरा टाइप करें (या यदि आप OAuth स्कोप का उपयोग नहीं करते हैं तो एक मनमाना स्ट्रिंग)। यह करने के बाद, अधिकृत एपीआई पर क्लिक करें।
- चरण 2 और चरण 3 वर्गों में, OAuth 2.0 प्रवाह के माध्यम से जाना और सत्यापित करें कि प्रत्येक चरण के रूप में इरादा काम करता है।
आप का उपयोग करके अपने कार्यान्वयन को मान्य कर सकते गूगल खाता लिंक करना डेमो उपकरण।
टूल में, निम्न चरणों का पालन करें:
- क्लिक करें गूगल से प्रवेश करें बटन में।
- वह खाता चुनें जिसे आप लिंक करना चाहते हैं।
- सेवा आईडी दर्ज करें।
- वैकल्पिक रूप से एक या अधिक क्षेत्र दर्ज करें जिसके लिए आप एक्सेस का अनुरोध करेंगे।
- प्रारंभ डेमो क्लिक करें।
- संकेत मिलने पर, पुष्टि करें कि आप सहमति दे सकते हैं और लिंकिंग अनुरोध को अस्वीकार कर सकते हैं।
- पुष्टि करें कि आपको अपने प्लेटफ़ॉर्म पर पुनर्निर्देशित किया गया है।