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

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

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

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

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

<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'
}
Returns
gapi.auth2.GoogleAuth gapi.auth2.GoogleAuth ऑब्जेक्ट. ऐसा प्रॉमिस पाने के लिए then() तरीके का इस्तेमाल करें जो gapi.auth2.GoogleAuth ऑब्जेक्ट के शुरू होने के बाद रिज़ॉल्व किया जाता है.

GoogleAuth.then(onInit, onError)

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

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

गड़बड़ी कोड

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

gapi.auth2.ClientConfig

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

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

पुष्टि करना

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

gapi.auth2.getAuthइंस्टेंस()

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

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

GoogleAuth.isSignedIn.get()

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

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

GoogleAuth.isSignedIn.listen(listener)

मौजूदा उपयोगकर्ता की साइन-इन की स्थिति में हुए बदलावों के लिए सुनें.

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

GoogleAuth.signIn()

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

Returns
वादा ऐसा 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');
Returns
वादा ऐसा 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()

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

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

GoogleAuth.disconnect()

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

GoogleAuth.grantOfflineAccess(options)

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

तर्क
options एक gapi.auth2.OfflineAccessOptions ऑब्जेक्ट, जिसमें पैरामीटर के की-वैल्यू पेयर होते हैं. उदाहरण के लिए:
{
  scope: 'profile email'
}
Returns
वादा ऐसा 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.ऑफ़लाइन ऐक्सेस विकल्प

ऐसा इंटरफ़ेस जो 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() का इस्तेमाल करें.

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

GoogleAuth.currentUser.listen(listener)

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

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

GoogleUser.getId()

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

Returns
String उपयोगकर्ता का यूनीक आईडी

GoogleUser.isSignedIn()

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

Returns
बूलियन अगर उपयोगकर्ता ने साइन इन किया हुआ है, तो सही है

GoogleUser.getHostedDomain()

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

Returns
String उपयोगकर्ता का G Suite डोमेन

GoogleUser.getGrantedScopes()

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

Returns
String उपयोगकर्ता के दिए गए दायरे

GoogleUser.getBasicProfile()

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

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

GoogleUser.getAuthResponse(शामिलऑथराइज़ेशनडेटा)

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

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

GoogleUser.reloadAuthResponse()

ऐक्सेस टोकन को रीफ़्रेश करने के लिए बाध्य करता है और फिर नए AuthResponse के लिए Promise मिलता है.

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

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 स्कोप की स्पेस-डीलिमिटेड स्ट्रिंग.
Returns
बूलियन अगर दायरे दिए गए हों, तो सही है

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).
width बटन की चौड़ाई पिक्सल में है (डिफ़ॉल्ट: 120).
ऊंचाई बटन की ऊंचाई पिक्सल में (डिफ़ॉल्ट: 36).
लंबा टाइटल "साइन इन करें" (डिफ़ॉल्ट: false) के बजाय "Google से साइन इन करें" जैसे लंबे लेबल दिखाएं. बड़े शीर्षक इस्तेमाल करते समय, आपको बटन की चौड़ाई डिफ़ॉल्ट से बढ़ा देनी चाहिए.
थीम बटन की कलर थीम: light या dark (डिफ़ॉल्ट: light).
सफलता मिली उपयोगकर्ता के साइन इन करने पर कॉल करने के लिए, कॉलबैक फ़ंक्शन. इस फ़ंक्शन में एक आर्ग्युमेंट होना चाहिए: gapi.auth2.GoogleUser का एक इंस्टेंस (डिफ़ॉल्ट: कोई नहीं).
onfailure साइन इन न होने पर, कॉल करने के लिए कॉलबैक फ़ंक्शन. यह फ़ंक्शन कोई आर्ग्युमेंट (डिफ़ॉल्ट: कोई नहीं) नहीं लेता.

बेहतर

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