खातों को इंडस्ट्री स्टैंडर्ड OAuth 2.0 के इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करके लिंक किया जाता है. आपकी सेवा, OAuth 2.0 के मुताबिक काम करने वाले ऑथराइज़ेशन और टोकन एक्सचेंज एंडपॉइंट के साथ काम करनी चाहिए.
इंप्लिसिट फ़्लो में, Google उपयोगकर्ता के ब्राउज़र में आपका ऑथराइज़ेशन एंडपॉइंट खोलता है. साइन इन करने के बाद, आपको Google को लंबे समय तक चलने वाला ऐक्सेस टोकन देना होगा. यह ऐक्सेस टोकन, अब Google से भेजे जाने वाले हर अनुरोध में शामिल होता है.
ऑथराइज़ेशन कोड फ़्लो में, आपको दो एंडपॉइंट की ज़रूरत होती है:
अनुमति एंडपॉइंट, जो आपके उन उपयोगकर्ताओं को साइन-इन यूज़र इंटरफ़ेस दिखाता है जो पहले से साइन इन नहीं हैं. ऑथराइज़ेशन एंडपॉइंट, अनुरोध किए गए ऐक्सेस के लिए उपयोगकर्ताओं की सहमति रिकॉर्ड करने के लिए, कुछ समय के लिए मान्य ऑथराइज़ेशन कोड भी बनाता है.
टोकन एक्सचेंज एंडपॉइंट, जो दो तरह के एक्सचेंज के लिए ज़िम्मेदार होता है:
- यह लंबे समय तक सक्रिय रहने वाले रीफ़्रेश टोकन और कम समय तक चलने वाले ऐक्सेस टोकन के लिए ऑथराइज़ेशन कोड का इस्तेमाल करता है. यह एक्सचेंज तब होता है, जब उपयोगकर्ता खाता लिंक करने के फ़्लो से गुज़रता है.
- यह नीति, कुछ समय के लिए उपलब्ध ऐक्सेस टोकन के लिए, लंबे समय तक चलने वाले रीफ़्रेश टोकन का लेन-देन करती है. यह एक्सचेंज तब होता है, जब Google को नया ऐक्सेस टोकन चाहिए, क्योंकि उसका मौजूदा टोकन खत्म हो गया है.
OAuth 2.0 फ़्लो चुनना
इंप्लिसिट फ़्लो को लागू करना आसान है. हालांकि, Google का सुझाव है कि इंप्लिसिट फ़्लो से जारी किए गए ऐक्सेस टोकन की समयसीमा कभी खत्म न हो. इसकी वजह यह है कि उपयोगकर्ता को अपने खाते को फिर से लिंक करना पड़ता है. ऐसा तब होता है, जब इंप्लिसिट फ़्लो के साथ टोकन की समयसीमा खत्म हो जाती है. अगर आपको सुरक्षा से जुड़ी वजहों से टोकन की समयसीमा तय करनी है, तो हमारा सुझाव है कि आप इसके बजाय ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करें.
डिज़ाइन से जुड़े दिशा-निर्देश
इस सेक्शन में, उपयोगकर्ता की उस स्क्रीन के डिज़ाइन से जुड़ी ज़रूरी शर्तों और सुझावों के बारे में बताया गया है जिसे OAuth लिंक करने के फ़्लो के लिए होस्ट किया जाता है. Google के ऐप्लिकेशन से कॉल करने के बाद, आपका प्लैटफ़ॉर्म उपयोगकर्ता को'Google में साइन इन करें' पेज और खाता लिंक करने की सहमति वाली स्क्रीन दिखाता है. खातों को लिंक करने की सहमति देने के बाद, उपयोगकर्ता को वापस Google के ऐप्लिकेशन पर भेज दिया जाता है.
ज़रूरी शर्तें
- आपको यह बताना होगा कि उपयोगकर्ता का खाता Google से लिंक किया जाएगा, न कि Google के किसी प्रॉडक्ट से, जैसे कि Google Home या Google Assistant.
सुझाव
हमारा सुझाव है कि आप ये काम करें:
Google की निजता नीति दिखाएं. सहमति वाली स्क्रीन पर, Google की निजता नीति का लिंक शामिल करें.
शेयर किया जाने वाला डेटा. साफ़ और कम शब्दों में उपयोगकर्ता को बताएं कि Google को उनके लिए कौनसे डेटा की ज़रूरत है और क्यों.
साफ़ तौर पर कॉल-टू-ऐक्शन दें. सहमति वाली स्क्रीन पर, साफ़ तौर पर कॉल-टू-ऐक्शन दें, जैसे कि “सहमति दें और लिंक करें.” ऐसा इसलिए है, क्योंकि उपयोगकर्ताओं को यह समझना ज़रूरी है कि अपने खाते लिंक करने के लिए, उन्हें Google के साथ कौनसा डेटा शेयर करना होगा.
सदस्यता रद्द करने की सुविधा. अगर उपयोगकर्ता खाता लिंक नहीं करना चाहता है, तो उसे वापस जाने या रद्द करने का विकल्प दें.
साइन इन करने की प्रोसेस साफ़ करें. पक्का करें कि उपयोगकर्ताओं को अपने Google खाते में साइन इन करने का तरीका साफ़ तौर पर पता हो. जैसे, उपयोगकर्ता नाम और पासवर्ड के लिए फ़ील्ड या Google से साइन इन करें.
अनलिंक करने की सुविधा. उपयोगकर्ताओं को अनलिंक करने का तरीका उपलब्ध कराएं, जैसे कि आपके प्लैटफ़ॉर्म पर उनकी खाता सेटिंग का यूआरएल. इसके अलावा, Google खाते का लिंक भी शामिल किया जा सकता है, जहां उपयोगकर्ता अपने लिंक किए गए खाते को मैनेज कर सकते हैं.
उपयोगकर्ता खाता बदलने की सुविधा. उपयोगकर्ताओं को अपने खाते स्विच करने का तरीका बताएं. यह सुविधा खास तौर पर तब फ़ायदेमंद होती है, जब उपयोगकर्ताओं के पास एक से ज़्यादा खाते हों.
- अगर किसी उपयोगकर्ता को खाता स्विच करने के लिए, सहमति वाली स्क्रीन बंद करनी पड़ती है, तो Google को ऐसी गड़बड़ी भेजें जिसे ठीक किया जा सके. इससे उपयोगकर्ता, OAuth लिंकिंग और अनिमिट फ़्लो की मदद से, अपने पसंदीदा खाते में साइन इन कर सकता है.
अपना लोगो शामिल करें. सहमति वाली स्क्रीन पर अपनी कंपनी का लोगो दिखाएं. लोगो डालने के लिए, स्टाइल के दिशा-निर्देशों का इस्तेमाल करें. अगर आपको Google का लोगो भी दिखाना है, तो लोगो और ट्रेडमार्क देखें.
प्रोजेक्ट बनाना
खाता लिंक करने की सुविधा का इस्तेमाल करने के लिए अपना प्रोजेक्ट बनाने के लिए:
OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करना
Google खाता लिंक करने की प्रोसेस में, सहमति वाली एक स्क्रीन शामिल होती है. इस स्क्रीन पर, उपयोगकर्ताओं को यह जानकारी मिलती है कि कौनसा ऐप्लिकेशन उनके डेटा को ऐक्सेस करने का अनुरोध कर रहा है, किस तरह का डेटा ऐक्सेस किया जा रहा है, और उस पर लागू होने वाली शर्तें क्या हैं. Google API क्लाइंट आईडी जनरेट करने से पहले, आपको OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करना होगा.
- Google APIs Console का OAuth के लिए सहमति देने की स्क्रीन पेज खोलें.
- अगर कहा जाए, तो वह प्रोजेक्ट चुनें जो आपने अभी-अभी बनाया है.
"OAuth की सहमति वाली स्क्रीन" पेज पर, फ़ॉर्म भरें और “सेव करें” बटन पर क्लिक करें.
ऐप्लिकेशन का नाम: सहमति मांगने वाले ऐप्लिकेशन का नाम. नाम से आपके ऐप्लिकेशन के बारे में सटीक जानकारी मिलनी चाहिए. साथ ही, यह नाम उस नाम से मेल खाना चाहिए जो उपयोगकर्ताओं को अन्य जगहों पर दिखता है. खाता लिंक करने की सहमति वाली स्क्रीन पर, ऐप्लिकेशन का नाम दिखेगा.
ऐप्लिकेशन का लोगो: सहमति वाली स्क्रीन पर मौजूद एक इमेज, जिससे उपयोगकर्ताओं को आपके ऐप्लिकेशन को पहचानने में मदद मिलेगी. यह लोगो, खाता लिंक करने की सहमति वाली स्क्रीन और खाता सेटिंग पर दिखाया जाता है
सहायता के लिए ईमेल: इससे उपयोगकर्ता, अपनी सहमति के बारे में सवाल पूछने के लिए आपसे संपर्क कर सकेंगे.
Google API के दायरे: ये दायरे, आपके ऐप्लिकेशन को उपयोगकर्ता का निजी Google डेटा ऐक्सेस करने की अनुमति देते हैं. Google खाते को लिंक करने के इस्तेमाल के उदाहरण के लिए, डिफ़ॉल्ट स्कोप (ईमेल, प्रोफ़ाइल, openid) काफ़ी है. आपको कोई संवेदनशील स्कोप जोड़ने की ज़रूरत नहीं है. आम तौर पर, सबसे सही तरीका यह है कि ऐक्सेस की ज़रूरत पड़ने पर, धीरे-धीरे स्कोप का अनुरोध किया जाए. ज़्यादा जानें.
अनुमति वाले डोमेन: आपके और आपके उपयोगकर्ताओं की सुरक्षा के लिए, Google सिर्फ़ उन ऐप्लिकेशन को अनुमति वाले डोमेन का इस्तेमाल करने की अनुमति देता है जो OAuth का इस्तेमाल करके पुष्टि करते हैं. आपके ऐप्लिकेशन के लिंक, आधिकारिक डोमेन पर होस्ट होने चाहिए. ज़्यादा जानें.
ऐप्लिकेशन के होम पेज का लिंक: आपके ऐप्लिकेशन का होम पेज. इसे किसी आधिकारिक डोमेन पर होस्ट किया जाना चाहिए.
ऐप्लिकेशन की निजता नीति का लिंक: यह लिंक, Google खाता लिंक करने की सहमति वाली स्क्रीन पर दिखता है. इसे किसी आधिकारिक डोमेन पर होस्ट किया जाना चाहिए.
ऐप्लिकेशन की सेवा की शर्तों का लिंक (ज़रूरी नहीं): इसे किसी ऐसे डोमेन पर होस्ट किया जाना चाहिए जिसे अनुमति मिली हो.
पहली इमेज. किसी काल्पनिक ऐप्लिकेशन, Tunery के लिए Google खाते को लिंक करने की सहमति वाली स्क्रीन
"पुष्टि की स्थिति" देखें. अगर आपके आवेदन की पुष्टि होनी है, तो "पुष्टि के लिए सबमिट करें" बटन पर क्लिक करके, आवेदन सबमिट करें. ज़्यादा जानकारी के लिए, OAuth की पुष्टि से जुड़ी ज़रूरी शर्तें देखें.
अपना OAuth सर्वर लागू करना
ऑथराइज़ेशन कोड फ़्लो के लागू होने वाले, OAuth 2.0 सर्वर में ये चीज़ें शामिल होती हैं दो एंडपॉइंट होते हैं, जिन्हें आपकी सेवा एचटीटीपीएस के ज़रिए उपलब्ध कराती है. पहला एंडपॉइंट ऑथराइज़ेशन एंडपॉइंट है, जो अलग-अलग डेटा सोर्स को खोजने या हासिल करने के लिए ज़िम्मेदार होता है डेटा ऐक्सेस करने के लिए उपयोगकर्ताओं की सहमति लें. ऑथराइज़ेशन एंडपॉइंट अपने उन उपयोगकर्ताओं के लिए साइन-इन यूज़र इंटरफ़ेस (यूआई) जिनमें पहले से साइन इन नहीं किया है. साथ ही, इनके लिए सहमति रिकॉर्ड करती है का अनुरोध किया गया है. दूसरा एंडपॉइंट, टोकन एक्सचेंज एंडपॉइंट है, जो का इस्तेमाल एन्क्रिप्ट की गई स्ट्रिंग पाने के लिए किया जाता है. इन्हें टोकन कहा जाता है. इनकी मदद से उपयोगकर्ता ये काम कर सकता है: अपनी सेवा ऐक्सेस करें.
जब किसी Google ऐप्लिकेशन को आपकी सेवा के एपीआई में से किसी को कॉल करने की ज़रूरत होती है, तो Google ये एंडपॉइंट एक साथ हैं, ताकि आपके उपयोगकर्ताओं को इन एपीआई को कॉल करने की अनुमति मिल सके को ट्रांसफ़र किया जा सकता है.
Google के शुरू किए गए OAuth 2.0 के ऑथराइज़ेशन कोड के फ़्लो का सेशन नया फ़्लो:
- Google, उपयोगकर्ता के ब्राउज़र में आपका ऑथराइज़ेशन एंडपॉइंट खोलता है. अगर आपको किसी कार्रवाई के लिए, सिर्फ़ वॉइस वाले डिवाइस पर शुरू किया गया है, तो Google फ़ोन पर एक्ज़ीक्यूट किया गया.
- अगर उपयोगकर्ता ने पहले से साइन इन नहीं किया हुआ है, तो वह साइन इन करता है. साथ ही, Google को ये काम करने की अनुमति देता है अगर उन्होंने पहले से अनुमति नहीं दी है, तो आपके एपीआई से उनका डेटा ऐक्सेस करना होगा.
- आपकी सेवा एक ऑथराइज़ेशन कोड बनाती है और उसे Google को वापस भेजती है. ऐसा करें इसलिए, अनुमति कोड की मदद से उपयोगकर्ता के ब्राउज़र को Google पर वापस रीडायरेक्ट करें अनुरोध के साथ अटैच की गई है.
- Google आपके टोकन एक्सचेंज एंडपॉइंट पर ऑथराइज़ेशन कोड भेजता है, जो कोड की प्रामाणिकता की पुष्टि करता है और ऐक्सेस टोकन और रीफ़्रेश टोकन होगा. ऐक्सेस टोकन, कुछ समय के लिए उपलब्ध टोकन होता है. इसे आपकी सेवा एपीआई ऐक्सेस करने के लिए क्रेडेंशियल के तौर पर स्वीकार करता है. रीफ़्रेश टोकन लंबे समय तक इस्तेमाल किया जा सकता है नए ऐक्सेस टोकन को पाने के लिए, Google इस टोकन को सेव और इस्तेमाल कर सकता है. की समयसीमा खत्म होने वाली है.
- उपयोगकर्ता खाता लिंक करने का फ़्लो पूरा करने के बाद, 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
अगर आपको साइन-इन करने के अनुरोधों को मैनेज करना है, तो अपने ऑथराइज़ेशन एंडपॉइंट के लिए ये काम करें चरण:
- पुष्टि करें कि
client_id
, Google को असाइन किए गए Client-ID से मेल खाता हो. साथ ही,redirect_uri
आपकी सेवा के लिए, Google से मिले रीडायरेक्ट यूआरएल से मेल खाता हो. अनुमति न देने के लिए, ये जांच ज़रूरी हैं अनचाहे या गलत तरीके से कॉन्फ़िगर किए गए क्लाइंट ऐप्लिकेशन के ऐक्सेस. अगर आपको कई सारे सॉफ़्टवेयर OAuth 2.0 फ़्लो, यह भी पुष्टि करते हैं किresponse_type
,code
है. - देखें कि उपयोगकर्ता ने आपकी सेवा में साइन इन किया है या नहीं. अगर उपयोगकर्ता ने साइन इन नहीं किया है, अपनी सेवा का साइन-इन या साइन-अप फ़्लो पूरा करें.
- Google के लिए एक ऑथराइज़ेशन कोड जनरेट करें, ताकि वह आपके एपीआई को ऐक्सेस कर सके. ऑथराइज़ेशन कोड कोई भी स्ट्रिंग वैल्यू हो सकता है, लेकिन यह यूनीक होना चाहिए उपयोगकर्ता, टोकन क्लाइंट के लिए, और कोड की समयसीमा खत्म होने की जानकारी का प्रतिनिधित्व करते हैं वह आसानी से समझ में आ जाए. आम तौर पर, आपकी अनुमति लेने की प्रक्रिया शुरू की जाती है जो करीब 10 मिनट बाद खत्म हो जाते हैं.
- पुष्टि करें कि
redirect_uri
पैरामीटर से तय किए गए यूआरएल में नीचे दिया गया फ़ॉर्म:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- उपयोगकर्ता के ब्राउज़र को
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
अनुरोधों का जवाब देता है
चरण:
- पुष्टि करें कि
client_id
, अनुरोध के मूल की पहचान, अनुमति वाले उपयोगकर्ता के तौर पर करता है ऑरिजिन औरclient_secret
अनुमानित वैल्यू से मेल खाता हो. - पुष्टि करें कि ऑथराइज़ेशन कोड मान्य है और उसकी समयसीमा खत्म नहीं हुई है. साथ ही, अनुरोध में दिया गया क्लाइंट आईडी, ऑथराइज़ेशन कोड.
- पुष्टि करें कि
redirect_uri
पैरामीटर से तय किया गया यूआरएल एक जैसा है में तय सीमा से ज़्यादा नहीं होना चाहिए. - अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं हो पा रही है, तो एक एचटीटीपी दिखाएं
{"error": "invalid_grant"}
के मुख्य भाग के रूप में 400 गलत अनुरोध की गड़बड़ी. - इसके अलावा, रीफ़्रेश जनरेट करने के लिए ऑथराइज़ेशन कोड से मिले यूज़र आईडी का इस्तेमाल करें एक टोकन और ऐक्सेस टोकन है. ये टोकन कोई भी स्ट्रिंग वैल्यू हो सकते हैं, लेकिन यह खास तौर पर उपयोगकर्ता और उस क्लाइंट की जानकारी होनी चाहिए जिसके लिए टोकन दिया गया है. ऐसा होना चाहिए जिससे अनुमान लगाया जा सके. ऐक्सेस टोकन के लिए, ऐक्सेस टोकन के खत्म होने की अवधि भी रिकॉर्ड करें यह टोकन जारी किया जाता है. यह आम तौर पर, टोकन जारी किए जाने के एक घंटे बाद होता है. रीफ़्रेश टोकन की समयसीमा खत्म नहीं होती.
- एचटीटीपीएस रिस्पॉन्स के मुख्य हिस्से में, यहां दिया गया 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
अनुरोधों का जवाब देता है:
- पुष्टि करें कि
client_id
, अनुरोध के मूल की पहचान Google के तौर पर करता है, और किclient_secret
अनुमानित वैल्यू से मेल खाता है. - पुष्टि करें कि रीफ़्रेश टोकन मान्य है और इसमें क्लाइंट आईडी बताया गया है अनुरोध, रीफ़्रेश टोकन से जुड़े क्लाइंट आईडी से मेल खाता हो.
- अगर ऊपर दी गई सभी शर्तों की पुष्टि नहीं हो पा रही है, तो एचटीटीपी 400 दिखाएं
{"error": "invalid_grant"}
के मुख्य भाग के रूप में गलत अनुरोध में गड़बड़ी. - इसके अलावा, ऐक्सेस जनरेट करने के लिए रीफ़्रेश टोकन से मिले यूज़र आईडी का इस्तेमाल करें टोकन. ये टोकन, स्ट्रिंग की कोई भी वैल्यू हो सकती हैं, लेकिन ये यूनीक होने चाहिए टोकन, उपयोगकर्ता और क्लाइंट के लिए हो सकता है. अनुमान लगाया जा सकता है. ऐक्सेस टोकन के लिए, टोकन के खत्म होने की अवधि भी रिकॉर्ड करें, आम तौर पर, टोकन जारी करने के एक घंटे बाद.
- एचटीटीपीएस के मुख्य हिस्से में, यहां दिया गया JSON ऑब्जेक्ट दिखाएं
जवाब:
{ "token_type": "बियरर", "access_token": "ACCESS_TOKEN", "expires_in": SECONDS_TO_EXPIRATION } पर स्विच करने के मकसद से, हमसे संपर्क करने के लिए धन्यवाद.
उपयोगकर्ता की जानकारी के अनुरोधों को मैनेज करना
userinfo एंडपॉइंट, OAuth 2.0 से सुरक्षित किया गया एक ऐसा संसाधन है जो लिंक किए गए उपयोगकर्ता के बारे में दावे दिखाता है. नीचे दिए गए इस्तेमाल के उदाहरणों को छोड़कर, userinfo एंडपॉइंट को लागू और होस्ट करना ज़रूरी नहीं है:
- Google One Tap की मदद से, लिंक किए गए खाते में साइन इन करें.
- AndroidTV पर बिना किसी रुकावट के सदस्यता.
आपके टोकन एंडपॉइंट से ऐक्सेस टोकन पाने के बाद, 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 एंडपॉइंट पर अनुरोधों को मैनेज करने के लिए यह तरीका अपनाएं:
- ऑथराइज़ेशन हेडर से ऐक्सेस टोकन निकालें और ऐक्सेस टोकन से जुड़े उपयोगकर्ता की जानकारी दिखाएं.
- अगर ऐक्सेस टोकन अमान्य है, तो
WWW-Authenticate
रिस्पॉन्स हेडर का इस्तेमाल करके, एचटीटीपी 401 बिना अनुमति वाली गड़बड़ी दिखाएं. नीचे userinfo गड़बड़ी के जवाब का एक उदाहरण दिया गया है:HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है अगर लिंक करने की प्रोसेस के दौरान, बिना अनुमति वाली 401 या गड़बड़ी वाला कोई भी गड़बड़ी का मैसेज मिलता है, तो इस गड़बड़ी को ठीक नहीं किया जा सकेगा. साथ ही, वापस मिले टोकन को खारिज कर दिया जाएगा और उपयोगकर्ता को फिर से लिंक करने की प्रोसेस शुरू करनी होगी. अगर ऐक्सेस टोकन मान्य है, तो वापस जाएं और एचटीटीपीएस के मुख्य हिस्से में, यहां दिए गए 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 टूल का इस्तेमाल करके, पुष्टि की जा सकती है कि आपने OAuth 2.0 को सही तरीके से लागू किया है या नहीं.
टूल में, नीचे दिया गया तरीका अपनाएं:
- OAuth 2.0 कॉन्फ़िगरेशन विंडो खोलने के लिए, कॉन्फ़िगरेशन पर क्लिक करें.
- OAuth फ़्लो फ़ील्ड में, क्लाइंट-साइड चुनें.
- OAuth एंडपॉइंट फ़ील्ड में, कस्टम चुनें.
- अपने OAuth 2.0 एंडपॉइंट और उस क्लाइंट आईडी की जानकारी दें जिसे आपने Google को असाइन किया है. इसके लिए, दिए गए फ़ील्ड का इस्तेमाल करें.
- पहला चरण सेक्शन में, Google का कोई स्कोप न चुनें. इसके बजाय, इस फ़ील्ड को खाली छोड़ दें या अपने सर्वर के लिए मान्य स्कोप टाइप करें. अगर OAuth स्कोप का इस्तेमाल नहीं किया जा रहा है, तो कोई भी स्ट्रिंग टाइप करें. इसके बाद, एपीआई को अनुमति दें पर क्लिक करें.
- दूसरे चरण और तीसरा सेक्शन में, OAuth 2.0 फ़्लो देखें और पुष्टि करें कि हर चरण आपके हिसाब से काम कर रहा हो.
Google खाते को लिंक करने के डेमो टूल का इस्तेमाल करके, पुष्टि की जा सकती है कि आपने इसे सही तरीके से लागू किया है या नहीं.
टूल में, नीचे दिया गया तरीका अपनाएं:
- Google से साइन इन करें बटन पर क्लिक करें.
- वह खाता चुनें जिसे आपको लिंक करना है.
- सेवा आईडी डालें.
- इसके अलावा, एक या उससे ज़्यादा ऐसे स्कोप डालें जिनके लिए आपको ऐक्सेस का अनुरोध करना है.
- डेमो शुरू करें पर क्लिक करें.
- जब कहा जाए, तब पुष्टि करें कि आपके पास खाते को लिंक करने के अनुरोध को स्वीकार और अस्वीकार करने का विकल्प है.
- पुष्टि करें कि आपको अपने प्लैटफ़ॉर्म पर रीडायरेक्ट किया गया है.