'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' जोड़ता है. अगर कोई वैल्यू नहीं दी गई है, तो True.
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)

currentUser में होने वाले बदलावों को सुनना.

तर्क
listener ऐसा फ़ंक्शन जो GoogleUser पैरामीटर लेता है. listen, currentUser में किए गए हर बदलाव पर, इस फ़ंक्शन को एक 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 स्पेस से अलग किए गए स्कोप की स्ट्रिंग.
रिटर्न
बूलियन अगर स्कोप दिए गए हैं, तो True

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).
longtitle "साइन इन करें" (डिफ़ॉल्ट: 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 Platform लाइब्रेरी का इस्तेमाल कर सकते हैं. डिफ़ॉल्ट रूप से, नए बनाए गए क्लाइंट आईडी को प्लैटफ़ॉर्म लाइब्रेरी का इस्तेमाल करने से रोका जाता है. इसके बजाय, उन्हें 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 अनुरोध पूरा न होने पर, इसमें गड़बड़ी के कोड के साथ-साथ ज़्यादा जानकारी भी शामिल हो सकती है.