'Google साइन-इन' JavaScript क्लाइंट रेफ़रंस

इस रेफ़रंस में, JavaScript क्लाइंट के उन तरीकों और एट्रिब्यूट के बारे में बताया गया है जिनका इस्तेमाल करके, अपने वेब ऐप्लिकेशन में Google साइन-इन को लागू किया जा सकता है.

अगर लाइब्रेरी का इस्तेमाल करते समय आपको कोई समस्या आती है, तो उसकी शिकायत हमारे GitHub रिपॉज़िटरी पर करें. .

पुष्टि करने की सुविधा सेट अप करना

gapi ऑब्जेक्ट बनाने के लिए, Google APIs प्लैटफ़ॉर्म लाइब्रेरी लोड करें:

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>

प्लैटफ़ॉर्म लाइब्रेरी लोड होने के बाद, auth2 लाइब्रेरी लोड करें:

function init() {
  gapi.load('auth2', function() {
    /* Ready. Make a call to gapi.auth2.init or some other API */
  });
}

gapi.auth2.init(params)

GoogleAuth ऑब्जेक्ट को शुरू करता है. gapi.auth2.GoogleAuth के मेथड को कॉल करने से पहले, आपको यह मेथड कॉल करना होगा.

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

तर्क
params क्लाइंट कॉन्फ़िगरेशन डेटा के की-वैल्यू पेयर वाला ऑब्जेक्ट. कॉन्फ़िगर की जा सकने वाली अलग-अलग प्रॉपर्टी के लिए gapi.auth2.ClientConfig देखें. उदाहरण के लिए:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
}
रिटर्न
gapi.auth2.GoogleAuth gapi.auth2.GoogleAuth ऑब्जेक्ट. gapi.auth2.GoogleAuth ऑब्जेक्ट के शुरू होने के बाद रिज़ॉल्व होने वाला प्रॉमिस पाने के लिए, then() मेथड का इस्तेमाल करें.

GoogleAuth.then(onInit, onError)

GoogleAuth ऑब्जेक्ट के पूरी तरह शुरू होने पर, onInit फ़ंक्शन को कॉल करता है. अगर शुरू करते समय कोई गड़बड़ी होती है (ऐसा उन पुराने ब्राउज़र में हो सकता है जिन पर यह सुविधा काम नहीं करती), तो उसके बजाय onError फ़ंक्शन को कॉल किया जाएगा.

तर्क
onInit पूरी तरह से शुरू होने पर, फ़ंक्शन को GoogleAuth ऑब्जेक्ट के साथ कॉल किया जाता है.
onError अगर GoogleAuth को शुरू करने में समस्या आती है, तो error प्रॉपर्टी वाले ऑब्जेक्ट के साथ फ़ंक्शन को कॉल किया जाता है.
रिटर्न
प्रॉमिस Promise, जो onInit फ़ंक्शन के पूरा हो जाने पर पूरा होता है या शुरू करने की गड़बड़ी मिलने पर अस्वीकार कर दिया जाता है. अगर कोई वैल्यू मिलती है, तो यह onInit फ़ंक्शन से मिली वैल्यू के साथ रिज़ॉल्व होती है.

गड़बड़ी कोड

idpiframe_initialization_failed
Google से ज़रूरी iframe शुरू नहीं किया जा सका. उदाहरण के लिए, ऐसा एनवायरमेंट होने की वजह से शुरू नहीं हो सका जो काम नहीं करता. details प्रॉपर्टी से, गड़बड़ी के बारे में ज़्यादा जानकारी मिलेगी.

gapi.auth2.ClientConfig

इंटरफ़ेस, जो gapi.auth2.init तरीके के लिए अलग-अलग कॉन्फ़िगरेशन पैरामीटर दिखाता है.

पैरामीटर
client_id string ज़रूरी है. ऐप्लिकेशन का क्लाइंट आईडी, जो Google API Console में मिलता है और बनाया जाता है.
cookie_policy string वे डोमेन जिनके लिए साइन इन कुकी बनानी हैं. यूआरआई, single_host_origin या none. अगर कोई वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से single_host_origin सेट हो जाती है.
scope string स्पेस से अलग किए गए स्ट्रिंग के तौर पर, अनुरोध करने के लिए दायरे. अगर fetch_basic_profile को 'गलत है' पर सेट नहीं किया गया है, तो ज़रूरी नहीं है.
fetch_basic_profile boolean उपयोगकर्ताओं के साइन इन करने पर, उनकी प्रोफ़ाइल की बुनियादी जानकारी फ़ेच करें. अनुरोध किए गए स्कोप में 'profile', 'email', और 'openid' जोड़ता है. सही न होने पर 'सही'.
hosted_domain string वह G Suite डोमेन जिससे उपयोगकर्ताओं को साइन इन करना होगा. इसमें क्लाइंट के ज़रिए बदलाव किए जा सकते हैं. इसलिए, लौटाए गए उपयोगकर्ता की होस्ट की गई डोमेन प्रॉपर्टी की पुष्टि ज़रूर करें. क्लाइंट पर GoogleUser.getHostedDomain() और सर्वर पर आईडी टोकन में hd दावे का इस्तेमाल करके, पुष्टि करें कि डोमेन वही है जिसकी आपको उम्मीद थी.
use_fedcm boolean ज़रूरी नहीं, डिफ़ॉल्ट रूप से True. साइन-इन के दौरान, ब्राउज़र के FedCM API का इस्तेमाल करने की सुविधा को चालू या बंद करें.
ux_mode string साइन इन फ़्लो के लिए इस्तेमाल किया जाने वाला यूज़र एक्सपीरियंस (UX) मोड. डिफ़ॉल्ट रूप से, यह सहमति फ़्लो को पॉप-अप में खोलेगा. मान्य वैल्यू popup और redirect हैं.
redirect_uri string ux_mode='redirect' का इस्तेमाल करने पर, इस पैरामीटर की मदद से डिफ़ॉल्ट redirect_uri को बदला जा सकता है. इसका इस्तेमाल, सहमति फ़्लो के आखिर में किया जाएगा. डिफ़ॉल्ट redirect_uri वह मौजूदा यूआरएल है जिसमें क्वेरी पैरामीटर और हैश फ़्रैगमेंट मौजूद नहीं होता है.
enable_granular_consent boolean ज़रूरी नहीं. पूरी अनुमतियां चालू करनी हैं या नहीं. अगर इसे false पर सेट किया जाता है, तो साल 2019 से पहले बनाए गए OAuth क्लाइंट आईडी के लिए, Google खाते की ज़्यादा जानकारी वाली अनुमतियां बंद कर दी जाएंगी. साल 2019 के दौरान या उसके बाद बनाए गए OAuth क्लाइंट आईडी पर कोई असर नहीं पड़ेगा, क्योंकि उनके लिए ज़्यादा जानकारी वाली अनुमतियां हमेशा चालू रहती हैं.
plugin_name string ज़रूरी नहीं. अगर यह वैल्यू सेट है, तो 29 जुलाई, 2022 से पहले बनाए गए नए Client-ID, Google Platform की पुरानी लाइब्रेरी का इस्तेमाल कर सकते हैं. डिफ़ॉल्ट रूप से, नए क्लाइंट आईडी को अब Platform Library का इस्तेमाल करने से ब्लॉक कर दिया गया है. इसके बजाय, उन्हें Google Identity Services की नई लाइब्रेरी का इस्तेमाल करना होगा. आपके पास कोई भी वैल्यू चुनने का विकल्प है. हालांकि, प्रॉडक्ट या प्लग इन का नाम जैसा कोई ब्यौरा देने वाला नाम चुनने का सुझाव दिया जाता है, ताकि प्रॉडक्ट की पहचान की जा सके. उदाहरण: plugin_name: 'YOUR_STRING_HERE'

पुष्टि करना

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

gapi.auth2.getAuthInstance()

GoogleAuth ऑब्जेक्ट दिखाता है. इस तरीके को कॉल करने से पहले, आपको GoogleAuth ऑब्जेक्ट को gapi.auth2.init() से शुरू करना होगा.

रिटर्न
gapi.auth2.GoogleAuth gapi.auth2.GoogleAuth ऑब्जेक्ट. gapi.auth2.GoogleAuth के तरीकों को कॉल करने के लिए, इस ऑब्जेक्ट का इस्तेमाल करें.

GoogleAuth.isSignedIn.get()

इससे पता चलता है कि मौजूदा उपयोगकर्ता ने साइन इन किया है या नहीं.

रिटर्न
बूलियन true, अगर उपयोगकर्ता ने साइन इन किया है या false, अगर उपयोगकर्ता ने साइन आउट किया है या GoogleAuth ऑब्जेक्ट को शुरू नहीं किया गया है.

GoogleAuth.isSignedIn.listen(listener)

मौजूदा उपयोगकर्ता के साइन इन स्टेटस में होने वाले बदलावों को सुनता है.

तर्क
listener ऐसा फ़ंक्शन जो बूलियन वैल्यू लेता है. उपयोगकर्ता के साइन इन करने पर, listen() इस फ़ंक्शन में true पास करता है. साथ ही, उपयोगकर्ता के साइन आउट करने पर false पास करता है.

GoogleAuth.signIn()

gapi.auth2.init() के लिए तय किए गए विकल्पों की मदद से, उपयोगकर्ता को साइन इन करता है.

रिटर्न
प्रॉमिस ऐसा Promise जिसे GoogleUser इंस्टेंस के साथ पूरा किया जाता है, जब उपयोगकर्ता पुष्टि कर लेता है और अनुरोध किए गए स्कोप को मंज़ूरी देता है. इसके अलावा, अगर कोई गड़बड़ी होती है, तो error प्रॉपर्टी वाले ऑब्जेक्ट के साथ अस्वीकार किया जाता है. गड़बड़ी कोड के लिए अगला सेक्शन देखें.

गड़बड़ी के कोड

GoogleAuth.signIn(options) देखें.

GoogleAuth.signIn(options)

तय किए गए विकल्पों का इस्तेमाल करके उपयोगकर्ता को साइन इन करता है.

तर्क
options इनमें से कोई एक:
  • gapi.auth2.SignInOptions ऑब्जेक्ट, जिसमें साइन इन पैरामीटर के की-वैल्यू पेयर होते हैं. उदाहरण के लिए:
    {
      scope: 'profile email'
    }
  • gapi.auth2.SigninOptionsBuilder का एक उदाहरण. जैसे:
    options = new gapi.auth2.SigninOptionsBuilder();
    options.setAppPackageName('com.example.app');
    options.setFetchBasicProfile(True);
    options.setPrompt('select_account');
    options.setScope('profile').setScope('email');
रिटर्न
वादा जब उपयोगकर्ता पुष्टि कर लेता है और अनुरोध किए गए स्कोप को मंज़ूरी देता है, तो Promise को GoogleUser इंस्टेंस के साथ पूरा किया जाता है. अगर कोई गड़बड़ी होती है, तो error प्रॉपर्टी वाले ऑब्जेक्ट के साथ अस्वीकार किया जाता है. गड़बड़ी के कोड के लिए नीचे देखें.

गड़बड़ी के कोड

popup_closed_by_user
साइन इन फ़्लो पूरा करने से पहले, उपयोगकर्ता ने पॉप-अप बंद कर दिया.
access_denied
उपयोगकर्ता ने ज़रूरी स्कोप के लिए अनुमति नहीं दी.
immediate_failed
सहमति फ़्लो के लिए अनुरोध किए बिना, किसी भी उपयोगकर्ता को अपने-आप नहीं चुना जा सकता. prompt: 'none' विकल्प के साथ signIn का इस्तेमाल करने पर गड़बड़ी हुई. इस विकल्प का इस्तेमाल करना ज़रूरी नहीं है, क्योंकि अगर उपयोगकर्ता ने पिछले सेशन में साइन इन किया है, तो gapi.auth2.init उसे अपने-आप साइन इन कर देगा.

gapi.auth2.SignInOptions

इंटरफ़ेस, जो GoogleAuth.signIn(options) तरीके के लिए अलग-अलग कॉन्फ़िगरेशन पैरामीटर दिखाता है.

पैरामीटर
prompt string सहमति फ़्लो के लिए किसी खास मोड को लागू करता है. ज़रूरी नहीं.
संभावित वैल्यू ये हैं:
  • consent
    अनुमति देने वाला सर्वर, ऐप्लिकेशन को जानकारी भेजने से पहले, उपयोगकर्ता से सहमति मांगता है.
  • select_account
    अनुमति देने वाला सर्वर, उपयोगकर्ता को कोई Google खाता चुनने के लिए कहता है. इसकी मदद से, जिस उपयोगकर्ता के पास कई खाते हैं उसे ऐसे कई खातों में से चुनने की अनुमति मिलती है जिनके लिए उसके मौजूदा सेशन हो सकते हैं.
  • none (इसका सुझाव नहीं दिया जाता)
    अनुमति देने वाला सर्वर, पुष्टि करने या उपयोगकर्ता की सहमति वाली कोई स्क्रीन नहीं दिखाएगा. अगर उपयोगकर्ता की पुष्टि पहले से नहीं की गई है और उसने अनुरोध किए गए स्कोप के लिए पहले सहमति नहीं दी है, तो यह गड़बड़ी दिखाएगा.
    अगर उपयोगकर्ता ने पहले से साइन इन किया हुआ है, तो gapi.auth2.init की मदद से, वह ऐप्लिकेशन में अपने-आप साइन इन हो जाएगा. इसलिए, आम तौर पर signIn({prompt: 'none'}) को कॉल करने पर, वह काम नहीं करेगा.
scope string gapi.auth2.init पैरामीटर में तय किए गए दायरों के ऊपर, अनुरोध किए जाने वाले स्कोप, खाली जगह के ज़रिए अलग की गई स्ट्रिंग के तौर पर इस्तेमाल किए जाने वाले स्कोप. अगर fetch_basic_profile को 'गलत है' पर सेट नहीं किया गया है, तो यह एट्रिब्यूट ज़रूरी नहीं है.
ux_mode string साइन इन फ़्लो के लिए इस्तेमाल किया जाने वाला UX मोड. डिफ़ॉल्ट रूप से, यह सहमति फ़्लो को पॉप-अप में खोलेगा. मान्य वैल्यू popup और redirect हैं.
redirect_uri string ux_mode='redirect' का इस्तेमाल करने पर, इस पैरामीटर की मदद से, डिफ़ॉल्ट redirect_uri को बदला जा सकता है. इसका इस्तेमाल, सहमति फ़्लो के आखिर में किया जाएगा. डिफ़ॉल्ट redirect_uri, क्वेरी पैरामीटर और हैश फ़्रैगमेंट से हटाया गया मौजूदा यूआरएल होता है.

GoogleAuth.signOut()

ऐप्लिकेशन से मौजूदा खाते को साइन आउट करता है.

रिटर्न
प्रॉमिस Promise, जिसे तब पूरा किया जाता है, जब उपयोगकर्ता साइन आउट हो जाता है.

GoogleAuth.disconnect()

उपयोगकर्ता की ओर से दिए गए सभी दायरों को रद्द करता है.

GoogleAuth.grantOfflineAccess(options)

तय किए गए स्कोप को ऑफ़लाइन ऐक्सेस करने के लिए, उपयोगकर्ता से अनुमति लें.

तर्क
options gapi.auth2.OfflineAccessOptions पैरामीटर के की-वैल्यू पेयर वाला ऑब्जेक्ट. उदाहरण के लिए:
{
  scope: 'profile email'
}
रिटर्न
वादा ऐसा Promise जो तब पूरा होता है, जब उपयोगकर्ता अनुरोध किए गए स्कोप को मंज़ूरी देता है. इसके लिए, Promise के फ़ुलफ़िलमेंट हैंडलर को अनुमति कोड वाला ऑब्जेक्ट पास किया जाता है. उदाहरण के लिए:
auth2.grantOfflineAccess().then(function(resp) {
  var auth_code = resp.code;
});

गड़बड़ी कोड

popup_closed_by_user
उपयोगकर्ता ने सहमति देने की प्रोसेस पूरी करने से पहले ही पॉप-अप बंद कर दिया.
access_denied
उपयोगकर्ता ने ज़रूरी दायरों के लिए अनुमति नहीं दी है.
immediate_failed
सहमति फ़्लो के लिए अनुरोध किए बिना, किसी भी उपयोगकर्ता को अपने-आप नहीं चुना जा सकता. prompt: 'none' विकल्प के साथ signIn का इस्तेमाल करने पर गड़बड़ी हुई. इस विकल्प का इस्तेमाल करना ज़रूरी नहीं है, क्योंकि अगर उपयोगकर्ता ने पिछले सेशन में साइन इन किया था, तो gapi.auth2.init उसे अपने-आप साइन इन कर देगा.

gapi.auth2.OfflineAccessOptions

इंटरफ़ेस, जो GoogleAuth.grantOfflineAccess(options) तरीके के लिए अलग-अलग कॉन्फ़िगरेशन पैरामीटर दिखाता है.

पैरामीटर
prompt string सहमति फ़्लो के लिए किसी खास मोड को लागू करता है. ज़रूरी नहीं.
संभावित वैल्यू ये हैं:
  • consent
    अनुमति देने वाला सर्वर, ऐप्लिकेशन को जानकारी भेजने से पहले, उपयोगकर्ता से सहमति मांगता है.
  • select_account
    अनुमति देने वाला सर्वर, उपयोगकर्ता को कोई Google खाता चुनने के लिए कहता है. इससे, एक से ज़्यादा खाते इस्तेमाल करने वाले उपयोगकर्ता को उन खातों में से किसी एक को चुनने की अनुमति मिलती है जिनमें उनका मौजूदा सेशन चल रहा हो.
scope string gapi.auth2.init पैरामीटर में तय किए गए स्कोप के अलावा, स्पेस से अलग किए गए स्ट्रिंग के तौर पर अनुरोध करने के लिए स्कोप. अगर fetch_basic_profile को 'गलत है' पर सेट नहीं किया गया है, तो यह एट्रिब्यूट ज़रूरी नहीं है.

GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)

यह चुने गए कंटेनर के क्लिक हैंडलर से साइन-इन फ़्लो को अटैच करता है.

तर्क
container उस div एलिमेंट का आईडी या रेफ़रंस जिस पर क्लिक हैंडलर को अटैच करना है.
options ऐसा ऑब्जेक्ट जिसमें पैरामीटर के की-वैल्यू पेयर होते हैं. GoogleAuth.signIn() देखें.
onsuccess साइन-इन पूरा होने के बाद कॉल करने का फ़ंक्शन.
onfailure साइन-इन न हो पाने पर, कॉल करने की सुविधा.

उपयोगकर्ता

GoogleUser ऑब्जेक्ट, एक उपयोगकर्ता खाते को दिखाता है. आम तौर पर, GoogleUser ऑब्जेक्ट पाने के लिए, GoogleAuth.currentUser.get() को कॉल किया जाता है.

GoogleAuth.currentUser.get()

मौजूदा उपयोगकर्ता की जानकारी दिखाने वाला GoogleUser ऑब्जेक्ट दिखाता है. ध्यान दें कि हाल ही में शुरू किए गए GoogleAuth इंस्टेंस में, मौजूदा उपयोगकर्ता सेट नहीं किया गया है. शुरू किया गया GoogleAuth इंस्टेंस पाने के लिए, currentUser.listen() तरीके या GoogleAuth.then() का इस्तेमाल करें.

रिटर्न
GoogleUser मौजूदा उपयोगकर्ता

GoogleAuth.currentUser.listen(listener)

मौजूदा उपयोगकर्ता के बदलावों को सुनें.

तर्क
listener ऐसा फ़ंक्शन जो GoogleUser पैरामीटर लेता है. currentUser में बदलाव करने वाले हर बदलाव पर, listen इस फ़ंक्शन को GoogleUser इंस्टेंस पास करता है.

GoogleUser.getId()

उपयोगकर्ता की यूनीक आईडी स्ट्रिंग पाएं.

रिटर्न
स्ट्रिंग उपयोगकर्ता का यूनीक आईडी

GoogleUser.isSignedIn()

अगर उपयोगकर्ता साइन इन है, तो यह 'सही' दिखाता है.

रिटर्न
बूलियन अगर उपयोगकर्ता साइन इन है, तो True

GoogleUser.getHostedDomain()

अगर उपयोगकर्ता ने G Suite खाते से साइन इन किया है, तो उसका G Suite डोमेन पाएं.

रिटर्न
स्ट्रिंग उपयोगकर्ता का G Suite डोमेन

GoogleUser.getGrantedScopes()

उपयोगकर्ता ने जो स्कोप दिए हैं उन्हें स्पेस से अलग करके स्ट्रिंग के तौर पर पाएं.

रिटर्न
स्ट्रिंग उपयोगकर्ता ने इन दायरों की जानकारी दी है

GoogleUser.getBasicProfile()

उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाएं.

रिटर्न
gapi.auth2.BasicProfile gapi.auth2.BasicProfile की प्रॉपर्टी को इन तरीकों से वापस पाया जा सकता है:
  • BasicProfile.getId()
  • BasicProfile.getName()
  • BasicProfile.getGivenName()
  • BasicProfile.getFamilyName()
  • BasicProfile.getImageUrl()
  • BasicProfile.getEmail()

GoogleUser.getAuthResponse(includeAuthorizationData)

उपयोगकर्ता के पुष्टि करने वाले सेशन से रिस्पॉन्स ऑब्जेक्ट पाएं.

तर्क
includeAuthorizationData ज़रूरी नहीं: यह एक बूलियन है, जो यह तय करता है कि हमेशा ऐक्सेस टोकन और स्कोप दिखाने हैं या नहीं. डिफ़ॉल्ट रूप से, ऐक्सेस टोकन और अनुरोध किए गए स्कोप तब नहीं दिखाए जाते, जब fetch_basic_profile सही (डिफ़ॉल्ट वैल्यू) हो और किसी और स्कोप का अनुरोध न किया गया हो.
रिटर्न
gapi.auth2.AuthResponse gapi.auth2.AuthResponse ऑब्जेक्ट.

GoogleUser.reloadAuthResponse()

ऐक्सेस टोकन को रीफ़्रेश करता है और फिर नए AuthResponse के लिए प्रॉमिस दिखाता है.

रिटर्न
Promise OAuth टोकन को फिर से लोड करने पर, Promise को फिर से लोड किए गए gapi.auth2.AuthResponse से पूरा किया जाता है.

gapi.auth2.AuthResponse

GoogleUser.getAuthResponse(includeAuthorizationData) या GoogleUser.reloadAuthResponse() तरीकों को कॉल करने पर मिला जवाब.

प्रॉपर्टी
access_token string ऐक्सेस टोकन दिया गया.
id_token string दिया गया आईडी टोकन.
scope string ऐक्सेस टोकन में दिए गए दायरे.
expires_in number ऐक्सेस टोकन की समयसीमा खत्म होने में बचे सेकंड.
first_issued_at number वह टाइमस्टैंप जब उपयोगकर्ता ने पहली बार अनुरोध किए गए स्कोप को मंज़ूरी दी थी.
expires_at number वह टाइमस्टैंप जब ऐक्सेस टोकन की समयसीमा खत्म हो जाएगी.

GoogleUser.hasGrantedScopes(scopes)

अगर उपयोगकर्ता ने बताए गए स्कोप की अनुमति दी है, तो यह 'सही' दिखाता है.

तर्क
scopes स्पेस से अलग किए गए स्कोप की स्ट्रिंग.
रिटर्न
बूलियन दायरे की अनुमति देने पर वैल्यू 'सही' होगी

GoogleUser.grant(options)

उपयोगकर्ता से अतिरिक्त स्कोप का अनुरोध करें.

पैरामीटर की सूची और गड़बड़ी का कोड देखने के लिए, GoogleAuth.signIn() पर जाएं.

GoogleUser.grantOfflineAccess(options)

तय किए गए स्कोप को ऑफ़लाइन ऐक्सेस करने के लिए, उपयोगकर्ता से अनुमति लें.

तर्क
options एक gapi.auth2.OfflineAccessOptions ऑब्जेक्ट, जिसमें पैरामीटर के की-वैल्यू पेयर होते हैं. उदाहरण के लिए:
{
  scope: 'profile email'
}

GoogleUser.disconnect()

उपयोगकर्ता ने ऐप्लिकेशन के लिए जो स्कोप दिए हैं उन्हें रद्द कर देता है.

यूज़र इंटरफ़ेस (यूआई) एलिमेंट

gapi.signin2.render(id, options)

options ऑब्जेक्ट की तय की गई सेटिंग का इस्तेमाल करके, दिए गए आईडी वाले एलिमेंट में साइन-इन बटन रेंडर करता है.

तर्क
id उस एलिमेंट का आईडी जिसमें साइन-इन बटन रेंडर करना है.
options बटन को रेंडर करने के लिए इस्तेमाल की जाने वाली सेटिंग वाला ऑब्जेक्ट. उदाहरण के लिए:
{
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
इन विकल्पों को चुना जा सकता है:
पैरामीटर
दायरा उपयोगकर्ता के साइन इन करने पर, अनुरोध करने के लिए स्कोप (डिफ़ॉल्ट: profile).
चौड़ाई बटन की चौड़ाई, पिक्सल में (डिफ़ॉल्ट: 120).
ऊंचाई बटन की ऊंचाई, पिक्सल में (डिफ़ॉल्ट: 36).
बड़ा टाइटल "साइन इन करें" (डिफ़ॉल्ट: false) के बजाय, "Google से साइन इन करें" जैसे लंबे लेबल दिखाएं. लंबे टाइटल का इस्तेमाल करने पर, आपको बटन की चौड़ाई को डिफ़ॉल्ट से बढ़ाना चाहिए.
थीम बटन की रंग वाली थीम: light या dark (डिफ़ॉल्ट: light).
onsuccess उपयोगकर्ता के साइन इन करने पर कॉल करने के लिए कॉलबैक फ़ंक्शन. इस फ़ंक्शन को एक आर्ग्युमेंट इस्तेमाल करना चाहिए: gapi.auth2.GoogleUser का एक इंस्टेंस (डिफ़ॉल्ट: कोई नहीं).
onfailure साइन-इन न हो पाने पर, कॉल करने के लिए कॉलबैक फ़ंक्शन. यह फ़ंक्शन कोई आर्ग्युमेंट नहीं लेता (डिफ़ॉल्ट: कोई नहीं).

बेहतर

gapi.auth2.authorize(params, callback)

OAuth 2.0 का एक बार का ऑथराइज़ेशन करता है. इस्तेमाल किए गए पैरामीटर के आधार पर, यह Google साइन-इन फ़्लो के लिए एक पॉप-अप खोलेगा या उपयोगकर्ता के इंटरैक्शन के बिना, अनुरोध किया गया रिस्पॉन्स चुपचाप लोड करने की कोशिश करेगा.

इस तरीके का इस्तेमाल इन मामलों में किया जा सकता है:

  • आपके ऐप्लिकेशन को Google API एंडपॉइंट से सिर्फ़ एक बार अनुरोध करना होगा. जैसे, पहली बार साइन इन करने पर, लोगों के पसंदीदा YouTube वीडियो लोड करने के लिए.
  • आपके ऐप्लिकेशन का अपना सेशन मैनेजमेंट इन्फ़्रास्ट्रक्चर होता है. साथ ही, आपके बैकएंड में उपयोगकर्ता की पहचान करने के लिए, उसे सिर्फ़ एक बार आईडी टोकन की ज़रूरत होती है.
  • एक ही पेज पर कई क्लाइंट आईडी का इस्तेमाल किया जाता है.
तर्क
params ऐसा ऑब्जेक्ट जिसमें कॉन्फ़िगरेशन डेटा के की-वैल्यू पेयर शामिल होते हैं. कॉन्फ़िगर की जा सकने वाली अलग-अलग प्रॉपर्टी के लिए, gapi.auth2.AuthorizeConfig देखें. उदाहरण के लिए:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}
callback यह एक ऐसा फ़ंक्शन है जिसे अनुरोध पूरा होने के बाद, gapi.auth2.AuthorizeResponse ऑब्जेक्ट के साथ कॉल किया जाता है.

उदाहरण

gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});

गड़बड़ी के कोड

idpiframe_initialization_failed
Google से ज़रूरी iframe शुरू नहीं किया जा सका. उदाहरण के लिए, ऐसा एनवायरमेंट होने की वजह से शुरू नहीं हो सका जो काम नहीं करता. details प्रॉपर्टी से, गड़बड़ी के बारे में ज़्यादा जानकारी मिलेगी.
popup_closed_by_user
साइन इन फ़्लो पूरा करने से पहले, उपयोगकर्ता ने पॉप-अप बंद कर दिया.
access_denied
उपयोगकर्ता ने ज़रूरी स्कोप के लिए अनुमति नहीं दी.
immediate_failed
सहमति फ़्लो के बिना, किसी भी उपयोगकर्ता को अपने-आप नहीं चुना जा सकता. prompt: 'none' विकल्प के साथ signIn का इस्तेमाल करने पर गड़बड़ी हुई.

gapi.auth2.AuthorizeConfig

इंटरफ़ेस, जो gapi.auth2.authorize तरीके के लिए अलग-अलग कॉन्फ़िगरेशन पैरामीटर दिखाता है.

प्रॉपर्टी
client_id string ज़रूरी है. ऐप्लिकेशन का क्लाइंट आईडी, जो Google API Console में मिलता है और बनाया जाता है.
scope string ज़रूरी है. स्पेस से अलग किए गए स्ट्रिंग के तौर पर, अनुरोध करने के लिए स्कोप.
response_type string रिस्पॉन्स के टाइप के तौर पर खाली जगह की सूची. डिफ़ॉल्ट रूप से, यह 'permission' पर सेट होती है. ये वैल्यू इस्तेमाल की जा सकती हैं:
  • आईडी टोकन फिर से पाने के लिए, id_token
  • कोई ऐक्सेस टोकन फिर से पाने के लिए, permission या token
  • code, ऑथराइज़ेशन कोड पाने के लिए
prompt string सहमति फ़्लो के लिए, एक खास मोड को लागू करता है. ये वैल्यू हो सकती हैं:
  • consent
    अनुमति देने वाला सर्वर, ऐप्लिकेशन को जानकारी भेजने से पहले, उपयोगकर्ता से सहमति मांगता है.
  • select_account
    अनुमति देने वाला सर्वर, उपयोगकर्ता को कोई Google खाता चुनने के लिए कहता है. इससे, एक से ज़्यादा खाते इस्तेमाल करने वाले उपयोगकर्ता को उन खातों में से किसी एक को चुनने की अनुमति मिलती है जिनमें उनका मौजूदा सेशन चल रहा हो.
  • none
    ऑथराइज़ेशन सर्वर, पुष्टि करने या उपयोगकर्ता की सहमति वाली कोई स्क्रीन नहीं दिखाएगा. अगर उपयोगकर्ता की पहले से पुष्टि नहीं हुई है और उसने पहले, अनुरोध किए गए दायरों के लिए सहमति नहीं दी है, तो यह गड़बड़ी दिखाएगा.
    अगर रिस्पॉन्स टाइप के तौर पर code का अनुरोध किया जाता है, तो रिटर्न किया गया कोड सिर्फ़ access_token के लिए बदला जा सकता है, न कि refresh_token के लिए.
cookie_policy string वे डोमेन जिनके लिए साइन इन कुकी बनानी हैं. यूआरआई, single_host_origin या none. अगर जानकारी नहीं दी गई है, तो डिफ़ॉल्ट तौर पर single_host_origin होता है.
hosted_domain string वह G Suite डोमेन जिससे उपयोगकर्ताओं को साइन इन करना होगा. क्लाइंट इस डोमेन में बदलाव कर सकते हैं. इसलिए, यह पक्का करें कि आपने वापस आने वाले उपयोगकर्ता की होस्ट की गई डोमेन प्रॉपर्टी की पुष्टि कर ली हो.
login_hint string साइन इन फ़्लो में पहले से चुनने के लिए, किसी उपयोगकर्ता का ईमेल या उपयोगकर्ता आईडी. अगर prompt: "none" का इस्तेमाल नहीं किया जाता है, तो उपयोगकर्ता बदलाव कर सकते हैं.
include_granted_scopes boolean किसी ऐसे ऐक्सेस टोकन का अनुरोध किया जाए जिसमें वे सभी दायरे शामिल हों जो उपयोगकर्ता ने पहले ऐप्लिकेशन को दिए थे या सिर्फ़ वे दायरे शामिल हैं जिनका अनुरोध मौजूदा कॉल में किया गया है. डिफ़ॉल्ट रूप से, यह true पर सेट होती है.
enable_granular_consent boolean ज़रूरी नहीं. ज़्यादा बेहतर अनुमतियां चालू करनी हैं या नहीं. अगर इसे false पर सेट किया जाता है, तो साल 2019 से पहले बनाए गए OAuth क्लाइंट आईडी के लिए, Google खाते की ज़्यादा जानकारी वाली अनुमतियां बंद कर दी जाएंगी. साल 2019 या उसके बाद बनाए गए OAuth क्लाइंट आईडी पर कोई असर नहीं पड़ेगा, क्योंकि उनके लिए ज़्यादा जानकारी वाली अनुमतियां हमेशा चालू रहती हैं.
plugin_name string ज़रूरी नहीं. अगर सेट हो, तो 29 जुलाई, 2022 से पहले बनाए गए क्लाइंट आईडी Google प्लैटफ़ॉर्म लाइब्रेरी का इस्तेमाल कर सकते हैं. डिफ़ॉल्ट रूप से, नए बनाए गए क्लाइंट आईडी को प्लैटफ़ॉर्म लाइब्रेरी का इस्तेमाल करने से रोका जाता है. इसके बजाय, उन्हें Google Identity Services की नई लाइब्रेरी का इस्तेमाल करना होगा. आपके पास प्रॉडक्ट या प्लगिन के नाम जैसी जानकारी देने वाला कोई भी वैल्यू चुनने का विकल्प है. इससे प्रॉडक्ट या प्लगिन को आसानी से पहचाना जा सकता है. उदाहरण: plugin_name: 'YOUR_STRING_HERE'

gapi.auth2.AuthorizeResponse

gapi.auth2.authorize वाले तरीके के कॉलबैक में मिला रिस्पॉन्स.

प्रॉपर्टी
access_token string ऐक्सेस टोकन दिया गया. यह सिर्फ़ तब मौजूद होता है, जब response_type में permission या token की जानकारी दी गई हो.
id_token string दिया गया आईडी टोकन. यह सिर्फ़ तब मौजूद होता है, जब id_token को response_type में बताया गया हो.
code string ऑथराइज़ेशन कोड दिया गया. यह सिर्फ़ तब मौजूद होता है, जब code की वैल्यू को response_type में तय किया गया हो.
scope string ऐक्सेस टोकन में दिए गए स्कोप. यह सिर्फ़ तब मौजूद होता है, जब response_type में permission या token की जानकारी दी गई हो.
expires_in number ऐक्सेस टोकन की समयसीमा खत्म होने में लगने वाले सेकंड. यह सिर्फ़ तब मौजूद होता है, जब response_type में permission या token के बारे में बताया गया हो.
first_issued_at number वह टाइमस्टैंप जब उपयोगकर्ता ने पहली बार अनुरोध किए गए स्कोप को मंज़ूरी दी थी. यह सिर्फ़ तब मौजूद होता है, जब response_type में permission या token की जानकारी दी गई हो.
expires_at number वह टाइमस्टैंप जब ऐक्सेस टोकन की समयसीमा खत्म हो जाएगी. यह सिर्फ़ तब मौजूद होता है, जब response_type में permission या token के बारे में बताया गया हो.
error string अनुरोध पूरा न होने पर, इसमें गड़बड़ी का कोड शामिल होता है.
error_subtype string अनुरोध पूरा न होने पर, इसमें गड़बड़ी के कोड के साथ-साथ ज़्यादा जानकारी भी शामिल हो सकती है.