Google OpenID Connect API के बारे में जानकारी

इस पेज पर, OpenID Connect सेवा देने वाली कंपनी के तौर पर Google के लागू करने के तरीके के बारे में बताया गया है. साथ ही, Google के OIDC एंडपॉइंट के लिए तकनीकी जानकारी दी गई है. OpenID Connect (OIDC) Core 1.0 स्पेसिफ़िकेशन में, उपयोगकर्ताओं की पुष्टि करने और पहचान की जानकारी पाने के लिए प्रोटोकॉल तय किया गया है.

इस रेफ़रंस का मकसद, OIDC को लागू करने के बारे में सिलसिलेवार तरीके से निर्देश देना नहीं है. इसे लागू करने के बारे में ज़्यादा जानकारी के लिए, OpenID Connect गाइड देखें.

डिस्कवरी दस्तावेज़

डिस्कवरी दस्तावेज़ में, Google के OpenID Connect कॉन्फ़िगरेशन के बारे में मेटाडेटा होता है. इसे OpenID Connect Discovery 1.0 स्पेसिफ़िकेशन में तय किया गया है.

यूआरएल: https://accounts.google.com/.well-known/openid-configuration

अनुरोध करने का तरीका: GET

जवाब का मुख्य भाग

जवाब के फ़ील्ड, JSON ऑब्जेक्ट में दिखाए जाते हैं. यह ऑब्जेक्ट, अनुरोध करने वाले व्यक्ति को भेजे गए HTTP जवाब के मुख्य हिस्से में होता है. यह जवाब, अनुरोध करने वाले व्यक्ति के GET अनुरोध के जवाब में https://accounts.google.com/.well-known/openid-configuration ने भेजा होता है.

फ़ील्ड टाइप ब्यौरा
issuer string कुंजी जारी करने वाले का आइडेंटिफ़ायर. https स्कीम का इस्तेमाल करने वाला केस-सेंसिटिव यूआरएल. मॉडर्न वैल्यू https://accounts.google.com है. हालांकि, लेगसी वर्शन के लिए accounts.google.com भी दिखता है.
authorization_endpoint string ऑथराइज़ेशन एंडपॉइंट का यूआरएल.
device_authorization_endpoint string डिवाइस ऑथराइज़ेशन एंडपॉइंट का यूआरएल.
token_endpoint string टोकन एंडपॉइंट का यूआरएल.
userinfo_endpoint string UserInfo एंडपॉइंट का यूआरएल.
revocation_endpoint string रेवकेशन एंडपॉइंट का यूआरएल.
jwks_uri string JSON वेब कुंजी सेट (JWKS) दस्तावेज़ का यूआरएल.
response_types_supported array इस सूची में response_type की वे वैल्यू शामिल होती हैं जिनका इस्तेमाल किया जा सकता है.
response_modes_supported array इस सूची में response_mode की वे वैल्यू शामिल होती हैं जिनका इस्तेमाल किया जा सकता है.
authorization_response_iss_parameter_supported boolean बूलियन, जो आरएफ़सी 9207 के साथ काम करने की सुविधा के बारे में बताता है.
subject_types_supported array सब्जेक्ट आइडेंटिफ़ायर के साथ काम करने वाले टाइप की सूची.
id_token_signing_alg_values_supported array आईडी टोकन पर हस्ताक्षर करने के लिए, इस्तेमाल किए जा सकने वाले एल्गोरिदम की सूची.
scopes_supported array स्कोप की वैल्यू की सूची, जिनका इस्तेमाल किया जा सकता है.
claims_supported array दावों की सूची.
token_endpoint_auth_methods_supported array टोकन एंडपॉइंट के लिए, पुष्टि करने के काम करने वाले तरीकों की सूची.
code_challenge_methods_supported array पीकेसीई के लिए, कोड चैलेंज के साथ काम करने वाले तरीकों की सूची.
grant_types_supported array OAuth 2.0 के इस्तेमाल की अनुमति देने वाले टाइप की सूची.

आईडी टोकन (दावे)

जवाबों में दिखाई गई id_token वैल्यू, हस्ताक्षर किया गया JSON Web Token (JWT) होता है. इसकी पुष्टि करने के लिए, jwks_uri से मिले कीइंग मटीरियल का इस्तेमाल करना ज़रूरी है. यह jwks_uri, डिस्कवरी दस्तावेज़ में मौजूद होता है. नीचे दी गई टेबल में, डिकोड किए गए आईडी टोकन पेलोड के कॉन्टेंट के बारे में बताया गया है.

दावा करें टाइप ब्यौरा
iss string ज़रूरी है. जवाब देने वाले के लिए, जारी करने वाले का आइडेंटिफ़ायर. आम तौर पर https://accounts.google.com; हालांकि, लेगसी वर्शन के लिए accounts.google.com भी दिखाया जाता है.
sub string ज़रूरी है. यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता. किसी Google खाते में अलग-अलग समय पर कई ईमेल पते हो सकते हैं, लेकिन sub वैल्यू कभी नहीं बदलती. अपने ऐप्लिकेशन में sub का इस्तेमाल, उपयोगकर्ता के लिए यूनीक-आइडेंटिफ़ायर कुंजी के तौर पर करें. इसमें ज़्यादा से ज़्यादा 255 केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) ASCII वर्ण इस्तेमाल किए जा सकते हैं.
azp string अनुमति वाले प्रज़ेंटर का क्लाइंट आइडेंटिफ़ायर. यह Google Cloud Console से मिलता है. इस दावे की ज़रूरत सिर्फ़ तब होती है, जब आईडी टोकन का अनुरोध करने वाली पार्टी, आईडी टोकन की ऑडियंस से अलग हो.
aud string ज़रूरी है. वह ऑडियंस जिसके लिए आईडी टोकन बनाया गया है. यह आपके ऐप्लिकेशन का क्लाइंट आइडेंटिफ़ायर है. इसे Google Cloud Console से हासिल किया जाता है.
iat integer ज़रूरी है. वह समय जब आईडी टोकन जारी किया गया था. इसे यूनिक्स इपोक टाइम (पूर्णांक सेकंड) में दिखाया जाता है.
exp integer ज़रूरी है. समयसीमा खत्म होने का वह समय जिसके बाद आईडी टोकन को स्वीकार नहीं किया जाना चाहिए. इसे यूनिक्स इपोक टाइम (पूर्णांक सेकंड) में दिखाया जाता है.
nonce string पुष्टि करने के अनुरोध में, आपके ऐप्लिकेशन से दी गई nonce की वैल्यू. आपको इस वैल्यू को सिर्फ़ एक बार दिखाकर, रीप्ले अटैक से बचना चाहिए.
auth_time integer उपयोगकर्ता की पुष्टि होने का समय. यह एक JSON नंबर होता है. यह यूनिक्स युग (1 जनवरी, 1970, 00:00:00 यूटीसी) के बाद से बीते हुए सेकंड की संख्या को दिखाता है. यह तब दिया जाता है, जब पुष्टि करने के अनुरोध वाले claims पैरामीटर में auth_time दावा शामिल किया जाता है.
at_hash string ऐक्सेस टोकन का हैश. यह कुकी, इस बात की पुष्टि करती है कि ऐक्सेस टोकन, आइडेंटिटी टोकन से जुड़ा है. अगर सर्वर फ़्लो में access_token वैल्यू के साथ आईडी टोकन जारी किया जाता है, तो यह दावा हमेशा शामिल किया जाता है.
email string उपयोगकर्ता का ईमेल पता. यह जानकारी सिर्फ़ तब मिलती है, जब आपने अपने अनुरोध में email स्कोप शामिल किया हो. ऐसा हो सकता है कि इस दावे की वैल्यू, इस खाते के लिए यूनीक न हो. साथ ही, समय के साथ इसमें बदलाव हो सकता है. इसलिए, आपको इस वैल्यू का इस्तेमाल, उपयोगकर्ता के रिकॉर्ड से लिंक करने के लिए मुख्य आइडेंटिफ़ायर के तौर पर नहीं करना चाहिए. Google Workspace या Cloud संगठनों के उपयोगकर्ताओं की पहचान करने के लिए, email दावे के डोमेन पर भी भरोसा नहीं किया जा सकता. इसके बजाय, email दावे का इस्तेमाल करें.hd

चेतावनी: ईमेल पते का इस्तेमाल आइडेंटिफ़ायर के तौर पर न करें, क्योंकि एक Google खाते में अलग-अलग समय पर कई ईमेल पते हो सकते हैं. उपयोगकर्ता के आइडेंटिफ़ायर के तौर पर हमेशा sub फ़ील्ड का इस्तेमाल करें.
email_verified boolean अगर उपयोगकर्ता के ईमेल पते की पुष्टि हो गई है, तो वैल्यू सही होगी. ऐसा न होने पर, वैल्यू गलत होगी.
name string उपयोगकर्ता का पूरा नाम, जिसे दिखाया जा सकता है. यह तब दिया जा सकता है, जब अनुरोध के स्कोप में profile स्ट्रिंग शामिल हो या आईडी टोकन, टोकन रीफ़्रेश से वापस आ गया हो.
picture string उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का यूआरएल. यह तब दिया जा सकता है, जब अनुरोध के स्कोप में profile स्ट्रिंग शामिल हो या आईडी टोकन, टोकन रीफ़्रेश से वापस आ गया हो.
given_name string उपयोगकर्ता का नाम. name दावा मौजूद होने पर, यह एट्रिब्यूट सबमिट किया जा सकता है.
family_name string उपयोगकर्ता का उपनाम. name दावा मौजूद होने पर, यह एट्रिब्यूट सबमिट किया जा सकता है.
hd string उपयोगकर्ता के Google Workspace या Cloud संगठन से जुड़ा डोमेन. यह जानकारी सिर्फ़ तब दी जाती है, जब उपयोगकर्ता Google Cloud संगठन से जुड़ा हो. जब किसी संसाधन का ऐक्सेस सिर्फ़ कुछ डोमेन के सदस्यों तक सीमित करना हो, तब आपको इस दावे की पुष्टि करनी होगी. इस दावे के न होने का मतलब है कि खाता, Google के होस्ट किए गए डोमेन का नहीं है.

ऑथराइज़ेशन एंडपॉइंट

ऑथराइज़ेशन एंडपॉइंट का इस्तेमाल, उपयोगकर्ता की पुष्टि करने और ऑथराइज़ेशन कोड या टोकन पाने के लिए किया जाता है.

यूआरएल: https://accounts.google.com/o/oauth2/v2/auth

अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST

अनुरोध के पैरामीटर

पैरामीटर टाइप ज़रूरी है ब्यौरा
client_id string ज़रूरी है क्लाइंट आइडेंटिफ़ायर स्ट्रिंग, जो आपको Google Cloud Console से मिलती है.
nonce string वैकल्पिक आपके ऐप्लिकेशन से जनरेट की गई कोई रैंडम वैल्यू, जो रीप्ले प्रोटेक्शन की सुविधा चालू करती है. यह सिर्फ़ तब ज़रूरी है, जब आईडी टोकन का अनुरोध किया जा रहा हो (जब response_type में id_token शामिल हो).
response_type string ज़रूरी है यह कुकी, इस्तेमाल किए जाने वाले फ़्लो के बारे में जानकारी देती है. अगर वैल्यू code है, तो ऑथराइज़ेशन कोड फ़्लो लॉन्च करता है. इसके लिए, टोकन एंडपॉइंट को POST की ज़रूरत होती है, ताकि टोकन मिल सकें. अगर वैल्यू token, id_token, token id_token या id_token token है, तो यह इंप्लिसिट फ़्लो लॉन्च करता है. इसके लिए, रीडायरेक्शन यूआरआई पर JavaScript का इस्तेमाल करना ज़रूरी होता है, ताकि यूआरआई फ़्रैगमेंट से टोकन वापस पाए जा सकें. किसी भी फ़ॉर्म में token का इस्तेमाल करने से बचें, क्योंकि इससे यूआरएल में ऐक्सेस टोकन दिखते हैं. OAuth 2.1 में इस वैल्यू का इस्तेमाल करने की अनुमति नहीं है.
response_mode string वैकल्पिक इससे पता चलता है कि ऑथराइज़ेशन रिस्पॉन्स कैसे डिलीवर किया जाता है. अगर response_type की वैल्यू code है, तो डिफ़ॉल्ट वैल्यू query होती है. जवाब के अन्य टाइप के लिए, डिफ़ॉल्ट वैल्यू fragment होती है. इस्तेमाल की जा सकने वाली वैल्यू: query, fragment, form_post.
redirect_uri string ज़रूरी है इससे यह तय होता है कि जवाब कहां भेजा जाएगा. इस पैरामीटर की वैल्यू, रीडायरेक्ट करने के लिए सेट की गई उन वैल्यू में से किसी एक से पूरी तरह मेल खानी चाहिए जिन्हें आपने Google Cloud Console में सेट किया है. इसमें एचटीटीपी या एचटीटीपीएस स्कीम, केस, और आखिर में '/' (अगर कोई है) शामिल है. रीडायरेक्ट यूआरआई और अनुमति वाले JavaScript ऑरिजिन को, OAuth 2.0 यूआरआई की पुष्टि करने से जुड़े दस्तावेज़ में बताई गई पुष्टि करने की शर्तों का पालन करना होगा.
scope string ज़रूरी है स्कोप की ऐसी सूची जिसमें उनके क्रम का कोई मतलब नहीं होता और उनके बीच में खाली जगह का इस्तेमाल किया जाता है. सूची में openid वैल्यू शामिल होनी चाहिए. इसके बाद, profile वैल्यू, email वैल्यू या दोनों शामिल होनी चाहिए. आपके पास ओआईडीसी के अलावा अन्य स्कोप शामिल करने का विकल्प भी होता है. अगर profile स्कोप वैल्यू मौजूद है, तो आईडी टोकन में उपयोगकर्ता के डिफ़ॉल्ट profile दावे शामिल हो सकते हैं. हालांकि, ऐसा होना ज़रूरी नहीं है. अगर email स्कोप की वैल्यू मौजूद है, तो आईडी टोकन में email और email_verified दावे शामिल होते हैं. ज़्यादा जानकारी के लिए, OAuth 2.0 के स्कोप देखें.
state string सुझाए गए यह एक ओपेक स्ट्रिंग है, जो प्रोटोकॉल में राउंड-ट्रिप की जाती है. इसका मतलब है कि इसे ऑथराइज़ेशन कोड फ़्लो में यूआरआई पैरामीटर के तौर पर और इंप्लिसिट फ़्लो में यूआरआई फ़्रैगमेंट के तौर पर दिखाया जाता है. state, अनुरोधों और जवाबों को आपस में जोड़ने के लिए मददगार हो सकता है. आपके redirect_uri का अनुमान लगाया जा सकता है. इसलिए, state वैल्यू का इस्तेमाल करने से, आपको यह पक्का करने में मदद मिल सकती है कि आने वाला कनेक्शन, आपके ऐप्लिकेशन से शुरू किए गए पुष्टि करने के अनुरोध का नतीजा है. इससे, किसी दूसरी साइट से किए गए फ़र्ज़ी अनुरोध जैसे हमलों से सुरक्षा मिलती है.
access_type string वैकल्पिक offline और online को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. अगर आपके ऐप्लिकेशन को ऐक्सेस टोकन रीफ़्रेश करने की ज़रूरत है, लेकिन उपयोगकर्ता ब्राउज़र पर मौजूद नहीं है, तो offline का इस्तेमाल करें. यह वैल्यू, रीफ़्रेश टोकन पाने के लिए ज़रूरी है.
hd string वैकल्पिक Google Cloud संगठन के मालिकाना हक वाले खातों के लिए, लॉगिन प्रोसेस को आसान बनाएं. Google Cloud संगठन का डोमेन (उदाहरण के लिए, mycollege.edu) शामिल करके, यह बताया जा सकता है कि खाता चुनने वाले यूज़र इंटरफ़ेस (यूआई) को उस डोमेन के खातों के लिए ऑप्टिमाइज़ किया जाना चाहिए. अगर आपको सिर्फ़ एक Google Cloud संगठन के डोमेन के बजाय, Google Cloud संगठन के खातों के लिए ऑप्टिमाइज़ करना है, तो तारा चिह्न (*) की वैल्यू सेट करें: hd=*.
login_hint string वैकल्पिक जब आपके ऐप्लिकेशन को पता होता है कि उसे किस उपयोगकर्ता की पुष्टि करनी है, तब वह इस पैरामीटर को पुष्टि करने वाले सर्वर को एक हिंट के तौर पर दे सकता है. इस हिंट को पास करने से, खाता चुनने की सुविधा बंद हो जाती है. साथ ही, साइन-इन फ़ॉर्म पर ईमेल बॉक्स पहले से भर जाता है या सही सेशन चुना जाता है. इससे आपको उन समस्याओं से बचने में मदद मिल सकती है जो आपके ऐप्लिकेशन के गलत उपयोगकर्ता खाते में लॉग इन करने पर होती हैं. इसकी वैल्यू, ईमेल पता या sub स्ट्रिंग हो सकती है. यह स्ट्रिंग, उपयोगकर्ता के Google आईडी के बराबर होती है.
prompt string वैकल्पिक स्पेस से अलग की गई स्ट्रिंग वैल्यू की सूची. इससे यह तय होता है कि अनुमति देने वाला सर्वर, उपयोगकर्ता को फिर से पुष्टि करने और सहमति देने के लिए कहेगा या नहीं. इन वैल्यू का इस्तेमाल किया जा सकता है: none (कोई यूज़र इंटरफ़ेस नहीं), consent (सहमति लेने के लिए प्रॉम्प्ट), select_account (खाता चुनने के लिए प्रॉम्प्ट).
hl string वैकल्पिक यह BCP 47 भाषा का टैग है. इसका इस्तेमाल, साइन-इन, खाता चुनने वाले टूल, और सहमति वाली स्क्रीन के लिए डिसप्ले लैंग्वेज तय करने के लिए किया जाता है. इस पैरामीटर का इस्तेमाल न करने का सुझाव दिया जाता है, क्योंकि ब्राउज़र की सेटिंग और Google खाते की सेटिंग से आम तौर पर, उपयोगकर्ता की भाषा की प्राथमिकता के बारे में बेहतर जानकारी मिलती है.
include_granted_scopes boolean वैकल्पिक अगर इस पैरामीटर को true वैल्यू के साथ दिया जाता है और अनुमति देने का अनुरोध स्वीकार कर लिया जाता है, तो अनुमति में अन्य स्कोप के लिए, इस उपयोगकर्ता/ऐप्लिकेशन के कॉम्बिनेशन को दी गई पिछली सभी अनुमतियां शामिल होंगी. इंक्रीमेंटल ऑथराइज़ेशन देखें.
claims object वैकल्पिक claims पैरामीटर का इस्तेमाल, UserInfo रिस्पॉन्स या आईडी टोकन में शामिल करने के लिए, एक या उससे ज़्यादा वैकल्पिक फ़ील्ड तय करने के लिए किया जाता है. auth_time का अनुरोध करने के लिए, claims={\"id_token\":{\"auth_time\":{\"essential\":true}}} का इस्तेमाल करें.

जवाब के पैरामीटर

ऑथराइज़ेशन रिस्पॉन्स को क्लाइंट के रीडायरेक्शन यूआरआई (redirect_uri) पर, एचटीटीपी GET रीडायरेक्ट का इस्तेमाल करके भेजा जाता है. जवाब के पैरामीटर, क्वेरी स्ट्रिंग या यूआरएल फ़्रैगमेंट में रीडायरेक्शन यूआरआई में जोड़े जाते हैं. यह response_type और response_mode पर निर्भर करता है.

पैरामीटर टाइप ब्यौरा
iss string कार्ड जारी करने वाले का आइडेंटिफ़ायर. RFC 9207 के मुताबिक, यह पैरामीटर हमेशा दिखता है और इसकी वैल्यू https://accounts.google.com पर सेट होती है.
code string ऑथराइज़ेशन कोड, जिसे ऐक्सेस टोकन और आईडी टोकन के लिए बदला जा सकता है.
state string अनुरोध में मौजूद state पैरामीटर की वैल्यू के बराबर वैल्यू.
id_token string JSON Web Token (JWT), जिसमें उपयोगकर्ता की पहचान से जुड़ी जानकारी होती है.
access_token string यह ऐक्सेस टोकन है, जिसे Google API को भेजा जा सकता है.
token_type string लौटाया गया टोकन किस तरह का है. हमेशा Bearer.
expires_in integer टोकन जारी किए जाने के समय के हिसाब से, ऐक्सेस टोकन की लाइफ़टाइम (सेकंड में).
scope string code या access_token से मिले ऐक्सेस के स्कोप. इन्हें स्पेस से अलग की गई, केस-सेंसिटिव स्ट्रिंग की सूची के तौर पर दिखाया जाता है.
error string अनुरोध पूरा न होने पर गड़बड़ी का कोड.
error_description string अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी.

गड़बड़ी के रिस्पॉन्स

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

रीडायरेक्ट की गई गड़बड़ियां

आपको ये गड़बड़ी कोड मिल सकते हैं redirect_uri:

गड़बड़ी ब्यौरा
access_denied उपयोगकर्ता या अनुमति देने वाले सर्वर ने अनुरोध अस्वीकार कर दिया है.
invalid_request अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की कोई अमान्य वैल्यू शामिल है, किसी पैरामीटर को एक से ज़्यादा बार शामिल किया गया है या अनुरोध किसी और वजह से गलत है.
unauthorized_client क्लाइंट को इस तरीके का इस्तेमाल करके, ऑथराइज़ेशन कोड का अनुरोध करने की अनुमति नहीं है.
unsupported_response_type Authorization Server, इस तरीके का इस्तेमाल करके ऑथराइज़ेशन कोड पाने की सुविधा नहीं देता.
invalid_scope अनुरोध किया गया स्कोप अमान्य है, इसके बारे में जानकारी नहीं है या इसमें कोई बदलाव किया गया है.

उपयोगकर्ताओं को दिखने वाली गड़बड़ियां

कुछ मामलों में, जैसे कि जब client_id या redirect_uri अमान्य हो, तो अनुमति देने वाला सर्वर, उपयोगकर्ता को सुरक्षित तरीके से आपके ऐप्लिकेशन पर वापस रीडायरेक्ट नहीं कर सकता. इन मामलों में, उपयोगकर्ता को सीधे तौर पर गड़बड़ी वाला पेज दिखता है.

गड़बड़ी ब्यौरा
admin_policy_enforced Google Workspace एडमिन की नीतियों की वजह से, Google खाता अनुरोध किए गए एक या उससे ज़्यादा स्कोप को अनुमति नहीं दे सकता. एडमिन, आपके OAuth क्लाइंट आइडेंटिफ़ायर को साफ़ तौर पर अनुमति मिलने तक ऐक्सेस को कैसे सीमित कर सकता है, इस बारे में ज़्यादा जानने के लिए, Google Workspace एडमिन सहायता लेख पढ़ें.
disallowed_useragent ऑथराइज़ेशन एंडपॉइंट को, एम्बेड किए गए ऐसे उपयोगकर्ता-एजेंट में दिखाया गया है जिसे Google की OAuth 2.0 नीतियों के तहत अनुमति नहीं है.
org_internal अनुरोध में मौजूद OAuth क्लाइंट आइडेंटिफ़ायर, ऐसे प्रोजेक्ट का हिस्सा है जो किसी खास Google Cloud संगठन में Google खातों के ऐक्सेस को सीमित करता है.
deleted_client अनुरोध करने के लिए इस्तेमाल किए जा रहे OAuth क्लाइंट को मिटा दिया गया है. इस्तेमाल नहीं किए जा रहे क्लाइंट के मामले में, डेटा को मैन्युअल तरीके से या अपने-आप मिटाया जा सकता है.
invalid_grant PKCE का इस्तेमाल करते समय, code_challenge पैरामीटर अमान्य है या मौजूद नहीं है. ऐक्सेस टोकन को रीफ़्रेश करते समय या इंक्रीमेंटल ऑथराइज़ेशन का इस्तेमाल करते समय, हो सकता है कि टोकन की समयसीमा खत्म हो गई हो, उसे अमान्य कर दिया गया हो या उपयोगकर्ता खाते को मिटा दिया गया हो या बंद कर दिया गया हो.
redirect_uri_mismatch अनुरोध में पास किया गया redirect_uri, क्लाइंट आइडेंटिफ़ायर के लिए अनुमति वाले रीडायरेक्शन यूआरआई से मेल नहीं खाता. Google Cloud Console में जाकर, अनुमति वाले रीडायरेक्ट यूआरआई की समीक्षा करें. यह गड़बड़ी तब भी हो सकती है, जब अनुरोध में OAuth के आउट-ऑफ़-बैंड (OOB) फ़्लो का इस्तेमाल किया गया हो.
invalid_client जिस ऑरिजिन से अनुरोध किया गया है उसे इस क्लाइंट के लिए अनुमति नहीं है, क्लाइंट का कॉन्फ़िगरेशन गलत है या OAuth क्लाइंट सीक्रेट गलत है.
origin_mismatch अनुमति का अनुरोध करने वाले JavaScript का स्कीम, डोमेन, और/या पोर्ट, OAuth क्लाइंट आइडेंटिफ़ायर के लिए रजिस्टर किए गए, अनुमति वाले JavaScript ऑरिजिन यूआरआई से मेल नहीं खाता. Google Cloud Console में जाकर, अनुमति वाले JavaScript ऑरिजिन की समीक्षा करें.
invalid_request अनुरोध में कोई गड़बड़ी हुई. ऐसा इसलिए हो सकता है, क्योंकि अनुरोध का फ़ॉर्मैट सही नहीं है, ज़रूरी पैरामीटर मौजूद नहीं हैं या अनुमति लेने के लिए किसी ऐसे तरीके का इस्तेमाल किया गया है जिसकी अनुमति Google नहीं देता.

टोकन एंडपॉइंट

टोकन एंडपॉइंट का इस्तेमाल, ऑथराइज़ेशन कोड को ऐक्सेस टोकन और आईडी टोकन के लिए एक्सचेंज करने के लिए किया जाता है.

यूआरएल: https://oauth2.googleapis.com/token

अनुरोध करने का तरीका: POST

अनुरोध के पैरामीटर (ऑथराइज़ेशन कोड के लिए अनुमति)

पैरामीटर टाइप ज़रूरी है ब्यौरा
code string ज़रूरी है ऑथराइज़ेशन एंडपॉइंट से मिला ऑथराइज़ेशन कोड.
client_id string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है.
client_secret string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है.
redirect_uri string ज़रूरी है अनुमति के शुरुआती अनुरोध में इस्तेमाल किया गया रीडायरेक्शन यूआरआई. रीडायरेक्ट यूआरआई और अनुमति वाले JavaScript ऑरिजिन को, OAuth 2.0 यूआरआई की पुष्टि करने से जुड़े दस्तावेज़ में बताई गई पुष्टि करने की शर्तों का पालन करना होगा.
grant_type string ज़रूरी है authorization_code पर सेट होना चाहिए.

अनुरोध के पैरामीटर (डिवाइस फ़्लो)

पैरामीटर टाइप ज़रूरी है ब्यौरा
client_id string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है.
client_secret string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है.
device_code string ज़रूरी है यह device_code, डिवाइस ऑथराइज़ेशन एंडपॉइंट से मिलता है.
grant_type string ज़रूरी है urn:ietf:params:oauth:grant-type:device_code पर सेट होना चाहिए.

अनुरोध के पैरामीटर (ऐक्सेस टोकन रीफ़्रेश करना)

पैरामीटर टाइप ज़रूरी है ब्यौरा
client_id string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है.
client_secret string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है.
grant_type string ज़रूरी है इसे OpenID Connect Refresh Tokens की खास जानकारी में बताए गए तरीके के मुताबिक, refresh_token पर सेट किया जाना चाहिए.
refresh_token string ज़रूरी है ऑथराइज़ेशन कोड के बदले में मिला रीफ़्रेश टोकन.
scope string वैकल्पिक यह नई लाइन से अलग किए गए स्कोप की सूची होती है. इसके लिए, नए ऐक्सेस टोकन का अनुरोध किया गया है. अनुरोध किए गए स्कोप, अनुमति के लिए किए गए मूल अनुरोध में दिए गए स्कोप का सबसेट होने चाहिए.

जवाब का मुख्य भाग

जवाब के फ़ील्ड, JSON ऑब्जेक्ट में दिखाए जाते हैं. यह ऑब्जेक्ट, अनुरोध करने वाले व्यक्ति को भेजे गए HTTP जवाब के मुख्य हिस्से में होता है. यह जवाब, अनुरोध करने वाले व्यक्ति के POST अनुरोध के जवाब में https://oauth2.googleapis.com/token ने भेजा होता है.

फ़ील्ड टाइप ब्यौरा
access_token string यह ऐक्सेस टोकन है, जिसे Google API को भेजा जा सकता है.
expires_in integer टोकन जारी किए जाने के समय के हिसाब से, ऐक्सेस टोकन की लाइफ़टाइम (सेकंड में).
id_token string JSON Web Token (JWT), जिसमें उपयोगकर्ता की पहचान से जुड़ी जानकारी होती है. यह टोकन, शुरुआती ऑथराइज़ेशन कोड के बदले में मिलता है. अगर openid स्कोप का ऐक्सेस दिया गया है, तो रीफ़्रेश टोकन के अनुरोध के दौरान भी यह टोकन मिल सकता है.
scope string access_token से मिले ऐक्सेस के स्कोप. इन्हें केस-सेंसिटिव स्ट्रिंग के तौर पर दिखाया जाता है. इनके बीच में खाली जगह का इस्तेमाल किया जाता है.
token_type string लौटाया गया टोकन किस तरह का है. हमेशा Bearer.
refresh_token string (ज़रूरी नहीं) यह एक ऐसा टोकन होता है जिसका इस्तेमाल नए ऐक्सेस टोकन पाने के लिए किया जा सकता है. यह फ़ील्ड, सिर्फ़ ऑथराइज़ेशन कोड के शुरुआती एक्सचेंज में दिखता है. ऐसा तब होता है, जब access_type=offline का अनुरोध किया गया हो.
refresh_token_expires_in integer (ज़रूरी नहीं) रीफ़्रेश टोकन की बची हुई लाइफ़टाइम, सेकंड में. यह वैल्यू सिर्फ़ तब सेट होती है, जब उपयोगकर्ता समयसीमा के हिसाब से ऐक्सेस देता है.

गड़बड़ी के रिस्पॉन्स

अगर अनुरोध पूरा नहीं होता है, तो अनुमति देने वाला सर्वर, JSON ऑब्जेक्ट दिखाता है. इसमें ये फ़ील्ड होते हैं:

फ़ील्ड टाइप ब्यौरा
error string गड़बड़ी का कोड.
error_description string अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी.

यहां दी गई टेबल में, गड़बड़ी के संभावित कोड और उनसे जुड़े एचटीटीपी स्टेटस कोड के बारे में बताया गया है:

गड़बड़ी एचटीटीपी स्टेटस कोड ब्यौरा
invalid_request 400 अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की वैल्यू अमान्य है या अनुरोध किसी और वजह से गलत है.
invalid_client 401 क्लाइंट की पुष्टि नहीं हो सकी. उदाहरण के लिए, client_id या client_secret अमान्य है या क्लाइंट का टाइप गलत है.
invalid_grant 400 दिया गया अनुमति कोड, रीफ़्रेश टोकन या डिवाइस कोड अमान्य है, उसकी समयसीमा खत्म हो गई है, उसे रद्द कर दिया गया है या वह अनुमति के अनुरोध में इस्तेमाल किए गए रीडायरेक्शन यूआरआई से मेल नहीं खाता.
unauthorized_client 400 पुष्टि किए गए क्लाइंट को, अनुमति देने के इस तरीके का इस्तेमाल करने की अनुमति नहीं है.
unsupported_grant_type 400 ऑथराइज़ेशन सर्वर, ऑथराइज़ेशन ग्रांट टाइप के साथ काम नहीं करता.
invalid_scope 400 अनुरोध किया गया स्कोप अमान्य है, इसके बारे में जानकारी नहीं है या इसमें कोई बदलाव किया गया है.
authorization_pending 428 (डिवाइस फ़्लो) उपयोगकर्ता ने अब तक ऑथराइज़ेशन फ़्लो पूरा नहीं किया है.
slow_down 429 (डिवाइस फ़्लो) डिवाइस, पोलिंग के अनुरोध बहुत जल्दी-जल्दी भेज रहा है.
access_denied 403 (डिवाइस फ़्लो) उपयोगकर्ता ने डिवाइस को ऐक्सेस करने की अनुमति नहीं दी.
expired_token 400 (डिवाइस फ़्लो) device_code की समयसीमा खत्म हो गई है.
admin_policy_enforced 400 उपयोगकर्ता, अनुरोध किए गए स्कोप को अनुमति नहीं दे सकता. ऐसा इसलिए है, क्योंकि उसके Google Workspace एडमिन ने कुछ नीतियां लागू की हैं.
org_internal 403 क्लाइंट आइडेंटिफ़ायर, ऐसे प्रोजेक्ट का हिस्सा है जो किसी Google Cloud संगठन के लिए ऐक्सेस को सीमित करता है.

डिवाइस ऑथराइज़ेशन एंडपॉइंट

OAuth 2.0 डिवाइस फ़्लो में डिवाइस ऑथराइज़ेशन एंडपॉइंट का इस्तेमाल किया जाता है. इससे, सीमित इनपुट क्षमताओं वाले डिवाइसों के लिए उपयोगकर्ता कोड और पुष्टि करने का यूआरएल मिलता है.

यूआरएल: https://oauth2.googleapis.com/device/code

अनुरोध करने का तरीका: POST

अनुरोध के पैरामीटर

पैरामीटर टाइप ज़रूरी है ब्यौरा
client_id string ज़रूरी है आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है.
scope string ज़रूरी है यह स्पेस से अलग की गई स्कोप की सूची होती है. इससे उन संसाधनों की पहचान होती है जिन्हें आपका ऐप्लिकेशन, उपयोगकर्ता की ओर से ऐक्सेस कर सकता है.

जवाब का मुख्य भाग

जवाब एक JSON ऑब्जेक्ट होता है. इसमें ये फ़ील्ड शामिल होते हैं:

फ़ील्ड टाइप ब्यौरा
device_code string यह एक ऐसी वैल्यू है जिसे Google, उस डिवाइस की पहचान करने के लिए यूनीक तौर पर असाइन करता है जिस पर अनुमति का अनुरोध करने वाला ऐप्लिकेशन चलता है.
user_code string यह केस-सेंसिटिव वैल्यू होती है. इससे Google को उन स्कोप के बारे में पता चलता है जिनके लिए ऐप्लिकेशन ऐक्सेस का अनुरोध कर रहा है. आपका यूज़र इंटरफ़ेस (यूआई), उपयोगकर्ता को यह वैल्यू किसी ऐसे डिवाइस पर डालने के लिए कहेगा जिसमें इनपुट देने की बेहतर सुविधाएं उपलब्ध हों.
verification_url string यह एक ऐसा यूआरएल होता है जिस पर उपयोगकर्ता को किसी दूसरे डिवाइस पर जाकर, user_code डालना होता है. साथ ही, आपके ऐप्लिकेशन को ऐक्सेस करने की अनुमति देनी होती है या अनुमति नहीं देनी होती है.
expires_in integer device_code और user_code कितने सेकंड तक मान्य हैं.
interval integer इससे यह तय होता है कि आपका डिवाइस, पोलिंग के अनुरोधों के बीच कितने सेकंड तक इंतज़ार करेगा.

सहमति रद्द करने का एंडपॉइंट

टोकन रद्द करने वाले एंडपॉइंट की मदद से, आपका ऐप्लिकेशन ऐक्सेस टोकन या रीफ़्रेश टोकन रद्द कर सकता है.

यूआरएल: https://oauth2.googleapis.com/revoke

अनुरोध करने का तरीका: POST

अनुरोध के पैरामीटर

पैरामीटर टाइप ज़रूरी है ब्यौरा
token string ज़रूरी है वह ऐक्सेस टोकन या रीफ़्रेश टोकन जिसे आपको रद्द करना है.

जवाब का मुख्य भाग

अगर रद्द करने की प्रोसेस पूरी हो जाती है, तो जवाब में खाली एचटीटीपी 200 OK दिखता है. अगर रद्द करने की प्रोसेस पूरी नहीं होती है, तो गड़बड़ी का मैसेज JSON ऑब्जेक्ट में दिखता है.

फ़ील्ड टाइप ब्यौरा
error string अनुरोध पूरा न होने पर गड़बड़ी का कोड.
error_description string अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी.

यहां दी गई टेबल में, संभावित गड़बड़ी कोड के बारे में बताया गया है:

गड़बड़ी ब्यौरा
invalid_token अनुरोध में दिया गया टोकन पहले ही खत्म हो चुका है या उसे पहले ही रद्द कर दिया गया है.
invalid_request अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की वैल्यू अमान्य है या अनुरोध किसी और वजह से गलत है.

UserInfo एंडपॉइंट

UserInfo एंडपॉइंट, पुष्टि किए गए उपयोगकर्ता की प्रोफ़ाइल की जानकारी दिखाता है.

यूआरएल: https://openidconnect.googleapis.com/v1/userinfo

अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST

अनुरोध के हेडर

हेडर ब्यौरा
Authorization ज़रूरी है. इसे Bearer: access_token पर सेट किया जाना चाहिए.

जवाब का मुख्य भाग

जवाब के फ़ील्ड, एचटीटीपी रिस्पॉन्स के मुख्य हिस्से में JSON ऑब्जेक्ट के तौर पर दिखाए जाते हैं. यह रिस्पॉन्स, अनुरोध करने वाले व्यक्ति के https://openidconnect.googleapis.com/v1/userinfo को भेजे गए GET या POST अनुरोध के जवाब में मिलता है.

फ़ील्ड टाइप ब्यौरा
sub string ज़रूरी है. यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता. केस-सेंसिटिव स्ट्रिंग, जिसमें 255 से ज़्यादा वर्ण नहीं होने चाहिए.
name string उपयोगकर्ता का पूरा नाम, जिसे दिखाया जा सकता है.
given_name string उपयोगकर्ता का नाम.
family_name string उपयोगकर्ता का उपनाम.
picture string उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का यूआरएल.
email string उपयोगकर्ता का ईमेल पता.
email_verified boolean इससे पता चलता है कि उपयोगकर्ता के ईमेल पते की पुष्टि हुई है या नहीं.
hd string उपयोगकर्ता के Google Workspace या Cloud संगठन से जुड़ा होस्ट किया गया डोमेन.

Tokeninfo एंडपॉइंट

tokeninfo एंडपॉइंट, Google के लिए खास तौर पर लागू किया गया एक तरीका है. इसका इस्तेमाल, डीबग करने के मकसद से आईडी टोकन की पुष्टि करने के लिए किया जाता है.

यूआरएल: https://oauth2.googleapis.com/tokeninfo

अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST

अनुरोध के पैरामीटर

पैरामीटर टाइप ज़रूरी है ब्यौरा
id_token string ज़रूरी है पुष्टि करने के लिए आईडी टोकन.

जवाब का मुख्य भाग

जवाब के फ़ील्ड, एचटीटीपी रिस्पॉन्स के मुख्य हिस्से में JSON ऑब्जेक्ट के तौर पर दिखाए जाते हैं. यह रिस्पॉन्स, अनुरोध करने वाले व्यक्ति के https://oauth2.googleapis.com/tokeninfo को भेजे गए GET या POST अनुरोध के जवाब में मिलता है.

फ़ील्ड टाइप ब्यौरा
iss string कार्ड जारी करने वाले का आइडेंटिफ़ायर. हमेशा https://accounts.google.com.
sub string यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता.
aud string वह ऑडियंस जिसके लिए आईडी टोकन बनाया गया है. यह आपके ऐप्लिकेशन का क्लाइंट आइडेंटिफ़ायर है. इसे Google Cloud Console से हासिल किया जाता है.
iat integer वह समय जब JWT जारी किया गया था. इसे 1970-01-01T0:0:0Z से यूटीसी में मापे गए सेकंड की संख्या के तौर पर दिखाया जाता है.
exp integer समयसीमा खत्म होने का वह समय जिसके बाद, आईडी टोकन को प्रोसेस करने के लिए स्वीकार नहीं किया जाना चाहिए. इसे 1970-01-01T0:0:0Z से यूटीसी में मापे गए सेकंड की संख्या के तौर पर दिखाया जाता है.
email string उपयोगकर्ता का ईमेल पता.
email_verified string इससे पता चलता है कि उपयोगकर्ता के ईमेल पते की पुष्टि हुई है या नहीं. वैल्यू, स्ट्रिंग "true" या "false" है.
access_type string ओरिजनल अनुमति के अनुरोध में, ऐक्सेस के लिए अनुरोध किया गया टाइप.
azp string अनुमति वाले प्रज़ेंटर का क्लाइंट आइडेंटिफ़ायर. यह Google Cloud Console से मिलता है.
scope string यह टोकन को दिए गए स्कोप की सूची है. इसमें हर स्कोप के बीच में खाली जगह का इस्तेमाल किया गया है.
alg string आईडी टोकन पर हस्ताक्षर करने के लिए इस्तेमाल किया गया एल्गोरिदम.
kid string आईडी टोकन पर हस्ताक्षर करने के लिए इस्तेमाल किया गया कुंजी आईडी.
typ string टोकन किस तरह का है. हमेशा JWT.