'Google साइन इन' से माइग्रेट करना

इस गाइड से, आपको पुष्टि करने के लिए, JavaScript लाइब्रेरी को Google Sign-In प्लैटफ़ॉर्म लाइब्रेरी के पुराने वर्शन से Google Identity Services लाइब्रेरी के नए वर्शन पर माइग्रेट करने में मदद मिलती है. साथ ही, आपको ज़रूरी बदलावों और चरणों के बारे में भी जानकारी मिलती है.

अगर आपका क्लाइंट, अनुमति के लिए JavaScript के लिए Google API क्लाइंट लाइब्रेरी या पहले की अन्य लाइब्रेरी का इस्तेमाल कर रहा है, तो ज़्यादा जानकारी के लिए Google Identity Services पर माइग्रेट करना लेख पढ़ें.

पुष्टि करना और अनुमति देना

पुष्टि करने से यह पता चलता है कि कोई व्यक्ति कौन है. इसे आम तौर पर, उपयोगकर्ता का साइन-अप या साइन-इन करना कहा जाता है. अनुमति देने या डेटा या संसाधनों को ऐक्सेस करने के अनुरोध को अस्वीकार करने की प्रोसेस को कहते हैं. उदाहरण के लिए, आपका ऐप्लिकेशन उपयोगकर्ता के Google Drive को ऐक्सेस करने के लिए, उपयोगकर्ता की सहमति का अनुरोध करता है.

Google Sign-In की पुरानी प्लैटफ़ॉर्म लाइब्रेरी की तरह ही, नई Google Identity Services लाइब्रेरी को पुष्टि करने और अनुमति देने की प्रक्रियाओं के लिए बनाया गया है.

हालांकि, नई लाइब्रेरी में इन दोनों प्रोसेस को अलग-अलग किया गया है, ताकि डेवलपर को Google खातों को आपके ऐप्लिकेशन के साथ इंटिग्रेट करने में आसानी हो.

अगर आपको सिर्फ़ पुष्टि करने से जुड़ी जानकारी चाहिए, तो इस पेज को पढ़ना जारी रखें.

अगर आपको अनुमति देने से जुड़ी सुविधा का इस्तेमाल करना है, तो उपयोगकर्ता को अनुमति देने की सुविधा कैसे काम करती है और Google Identity Services पर माइग्रेट करना लेख पढ़ें. इससे यह पक्का किया जा सकेगा कि आपका ऐप्लिकेशन, नए और बेहतर एपीआई का इस्तेमाल कर रहा है.

क्या बदलाव हुए हैं

उपयोगकर्ताओं के लिए, Google Identity Services की नई लाइब्रेरी में इस्तेमाल से जुड़ी कई सुविधाएं बेहतर बनाई गई हैं. इनमें ये शामिल हैं:

  • कम चरणों वाले, आसानी से इस्तेमाल किए जा सकने वाले One Tap और अपने-आप साइन-इन होने की नई सुविधा,
  • उपयोगकर्ता की दिलचस्पी के हिसाब से साइन-इन करने का नया बटन,
  • वेब पर एक जैसी ब्रैंडिंग और साइन-इन करने का एक जैसा तरीका होने से, लोगों को ब्रैंड के बारे में बेहतर तरीके से समझने और उस पर भरोसा करने में मदद मिलती है,
  • उपयोगकर्ताओं को कॉन्टेंट तुरंत मिल जाता है. वे आपकी साइट पर कहीं से भी सीधे साइन-अप और साइन-इन कर सकते हैं. इसके लिए, उन्हें पहले लॉग इन या खाता पेज पर जाने की ज़रूरत नहीं होती.

हमारा फ़ोकस डेवलपर के लिए, जटिलता को कम करने, सुरक्षा को बेहतर बनाने, और इंटिग्रेशन को जल्द से जल्द पूरा करने पर रहा है. इनमें से कुछ सुधार यहां दिए गए हैं:

  • सिर्फ़ एचटीएमएल का इस्तेमाल करके, अपनी साइट के स्टैटिक कॉन्टेंट में उपयोगकर्ता के साइन-इन करने की सुविधा जोड़ने का विकल्प,
  • साइन-इन की पुष्टि करने की प्रोसेस को अनुमति देने और उपयोगकर्ता डेटा शेयर करने की प्रोसेस से अलग कर दिया गया है. इसलिए, अब उपयोगकर्ताओं को अपनी साइट पर साइन इन करने के लिए, OAuth 2.0 इंटिग्रेशन की जटिल प्रोसेस को पूरा करने की ज़रूरत नहीं है,
  • पॉप-अप और रीडायरेक्ट, दोनों मोड का इस्तेमाल किया जा सकता है. हालांकि, Google का OAuth 2.0 इन्फ़्रास्ट्रक्चर अब आपके बैकएंड सर्वर के लॉगिन एंडपॉइंट पर रीडायरेक्ट करता है,
  • Google Identity और Google API की JavaScript लाइब्रेरी, दोनों की सुविधाओं को एक नई लाइब्रेरी में शामिल किया गया है,
  • साइन-इन के जवाबों के लिए, अब यह तय किया जा सकता है कि Promise का इस्तेमाल करना है या नहीं. साथ ही, getter स्टाइल वाले फ़ंक्शन के ज़रिए इंडायरेक्शन को हटा दिया गया है, ताकि इसे आसानी से इस्तेमाल किया जा सके.

साइन-इन की सुविधा को माइग्रेट करने का उदाहरण

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

लाइब्रेरी और कॉन्फ़िगरेशन

उपयोगकर्ता की पुष्टि करने और उसे अनुमति देने के लिए, Google Sign-In की पुरानी प्लैटफ़ॉर्म लाइब्रेरी: apis.google.com/js/platform.js और JavaScript के लिए Google APIs क्लाइंट लाइब्रेरी: gapi.client की अब ज़रूरत नहीं है. इनकी जगह, Google Identity Services की एक नई JavaScript लाइब्रेरी ने ले ली है: accounts.google.com/gsi/client.

साइन-इन करने के लिए इस्तेमाल किए जाने वाले तीन JavaScript मॉड्यूल: api, client, और platform, सभी apis.google.com से लोड किए जाते हैं. आम तौर पर, इन जगहों पर आपकी साइट में पहले वाली लाइब्रेरी शामिल हो सकती है. इससे आपको उन जगहों की पहचान करने में मदद मिलेगी:

  • डिफ़ॉल्ट साइन-इन बटन लोड होता है apis.google.com/js/platform.js,
  • कस्टम बटन ग्राफ़िक लोड होता है apis.google.com/js/api:client.js, और
  • gapi.client का सीधे तौर पर इस्तेमाल करने से apis.google.com/js/api.js लोड होता है.

ज़्यादातर मामलों में, अपने मौजूदा वेब ऐप्लिकेशन के क्लाइंट आईडी क्रेडेंशियल का इस्तेमाल जारी रखा जा सकता है. हमारा सुझाव है कि माइग्रेट करने से पहले, OAuth 2.0 से जुड़ी हमारी नीतियां पढ़ें. साथ ही, Google API Console का इस्तेमाल करके, क्लाइंट की इन सेटिंग की पुष्टि करें और अगर ज़रूरी हो, तो इन्हें अपडेट करें:

  • आपके टेस्ट और प्रोडक्शन ऐप्लिकेशन, अलग-अलग प्रोजेक्ट का इस्तेमाल करते हों और उनके अपने क्लाइंट आईडी हों,
  • OAuth 2.0 क्लाइंट आईडी का टाइप "वेब ऐप्लिकेशन" है और
  • अनुमति वाले JavaScript ऑरिजिन और रीडायरेक्ट यूआरआई के लिए, एचटीटीपीएस का इस्तेमाल किया जाता है.

समस्या वाले कोड का पता लगाना और उसकी जांच करना

डीबग कुकी की मदद से, उस कोड का पता लगाया जा सकता है जिस पर असर पड़ा है. साथ ही, इस कुकी के बंद होने के बाद होने वाले बदलावों को टेस्ट किया जा सकता है.

बड़े या जटिल ऐप्लिकेशन में, gapi.auth2 मॉड्यूल के बंद होने से प्रभावित सभी कोड ढूंढना मुश्किल हो सकता है. जल्द ही बंद होने वाली सुविधाओं के मौजूदा इस्तेमाल को कंसोल में लॉग करने के लिए, G_AUTH2_MIGRATION कुकी की वैल्यू को informational पर सेट करें. इसके अलावा, सेशन स्टोरेज में भी लॉग करने के लिए, कोलन के बाद कुंजी की वैल्यू जोड़ें. साइन इन करने के बाद, क्रेडेंशियल की समीक्षा करें या इकट्ठा किए गए लॉग को बैकएंड में भेजें, ताकि बाद में उनका विश्लेषण किया जा सके. उदाहरण के लिए, informational:showauth2use ओरिजिन और यूआरएल को showauth2use नाम की सेशन स्टोरेज कुंजी में सेव करता है.

gapi.auth2 मॉड्यूल लोड न होने पर, ऐप्लिकेशन के व्यवहार की पुष्टि करने के लिए, G_AUTH2_MIGRATION कुकी की वैल्यू को enforced पर सेट करें. इससे, नीति के उल्लंघन को ठीक करने की समयसीमा खत्म होने के बाद, नीति के उल्लंघन को ठीक करने के तरीके की जांच की जा सकती है. ऐसा, नीति के उल्लंघन को ठीक करने के तरीके को लागू करने की तारीख से पहले किया जा सकता है.

G_AUTH2_MIGRATION कुकी की संभावित वैल्यू:

  • enforced gapi.auth2 मॉड्यूल को लोड न करें.
  • informational JS कंसोल में, बंद की गई सुविधाओं के इस्तेमाल का लॉग. जब वैकल्पिक कुंजी का नाम सेट किया जाता है, तब सेशन स्टोरेज में भी लॉग करें: informational:key-name.

हमारा सुझाव है कि प्रोडक्शन एनवायरमेंट में इस कुकी का इस्तेमाल करने से पहले, इसे डेवलपमेंट और टेस्टिंग के दौरान स्थानीय तौर पर सेट करें, ताकि उपयोगकर्ता पर इसका असर कम से कम हो.

एचटीएमएल और JavaScript

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

पहले का तरीका

Google से साइन इन करने का बटन रेंडर करें और उपयोगकर्ता के ब्राउज़र से सीधे साइन इन करने की सुविधा को मैनेज करने के लिए, कॉलबैक का इस्तेमाल करें.

<html>
  <body>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    <div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
  </body>
</html>

रीडायरेक्ट मोड

Google Sign-In बटन रेंडर करें. इसके बाद, उपयोगकर्ता के ब्राउज़र से आपके बैकएंड सर्वर के लॉगिन एंडपॉइंट पर AJAX कॉल करें.

<html>
  <body>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    <div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
    <script>
      function handleCredentialResponse(googleUser) {
        ...
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'https://yourbackend.example.com/tokensignin');
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onload = function() {
          console.log('Signed in as: ' + xhr.responseText);
        };
        xhr.send('idtoken=' + id_token);
      }
    </script>
  </body>
</html>

रेंडर किया गया

नए विज़ुअल एट्रिब्यूट की मदद से, कस्टम बटन बनाने का तरीका आसान हो जाता है. साथ ही, gapi.signin2.render() को कॉल करने की ज़रूरत नहीं पड़ती. इसके अलावा, आपको अपनी साइट पर इमेज और विज़ुअल ऐसेट को होस्ट और मैनेज करने की ज़रूरत नहीं होती.

Google साइन-इन

Google खाते में साइन इन किया गया

उपयोगकर्ता के साइन-इन की स्थिति के हिसाब से, बटन का टेक्स्ट अपडेट होता है.

नया तरीका

सिर्फ़ पुष्टि करने के लिए साइन इन करने के मामले में, नई लाइब्रेरी का इस्तेमाल करने के लिए, पॉप-अप या रीडायरेक्ट मोड में से किसी एक को चुनें. इसके बाद, कोड के सैंपल का इस्तेमाल करके, लॉगिन पेज पर मौजूदा कोड को बदलें.

उपयोगकर्ता के ब्राउज़र से सीधे साइन-इन करने की सुविधा को मैनेज करने के लिए, कॉलबैक का इस्तेमाल करें.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async defer></script>
    <div id="g_id_onload"
         data-client_id="YOUR_CLIENT_ID"
         data-callback="handleCredentialResponse">
    </div>
    <div class="g_id_signin" data-type="standard"></div>
  </body>
</html>

रीडायरेक्ट मोड

Google, data-login_url एट्रिब्यूट में बताए गए लॉगिन एंडपॉइंट को कॉल करता है. इससे पहले, POST ऑपरेशन और पैरामीटर के नाम के लिए आपकी ज़िम्मेदारी थी. नई लाइब्रेरी, आईडी टोकन को आपके एंडपॉइंट पर credential पैरामीटर में पोस्ट करती है. आखिर में, अपने बैकएंड सर्वर पर आईडी टोकन की पुष्टि करें.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async defer></script>
    <div id="g_id_onload"
         data-client_id="YOUR_CLIENT_ID"
         data-ux_mode="redirect"
         data-login_uri="https://www.example.com/your_login_endpoint">
    </div>
    <div class="g_id_signin" data-type="standard"></div>
  </body>
</html>

रेंडर किया गया

Sign In With Google बटन के साइज़, आकार, और रंग को पसंद के मुताबिक बनाने के लिए, visual-attributes का इस्तेमाल करें. साइन-इन करने की दर को बेहतर बनाने के लिए, One Tap पॉप-अप और आपके हिसाब से बनाए गए बटन को दिखाएं.

&#39;Google से साइन इन करें&#39; बटन One Tap
पॉप-अप

उपयोगकर्ता के साइन-इन करने की स्थिति के हिसाब से, बटन का टेक्स्ट "साइन इन करें" से "साइन इन किया गया" में अपडेट नहीं होता. सहमति देने के बाद या दोबारा आने पर, उपयोगकर्ता के हिसाब से बनाए गए बटन में उसका नाम, ईमेल पता, और प्रोफ़ाइल फ़ोटो शामिल होती है.

सिर्फ़ पुष्टि करने के इस उदाहरण में, नई accounts.google.com/gsi/client लाइब्रेरी, g_id_signin क्लास, और g_id_onload ऑब्जेक्ट, पहले की apis.google.com/js/platform.js लाइब्रेरी और g-signin2 ऑब्जेक्ट की जगह ले लेते हैं.

उदाहरण के तौर पर दिए गए कोड में, आपकी दिलचस्पी के हिसाब से बनाए गए नए बटन को रेंडर करने के साथ-साथ, One Tap वाले नए पॉप-अप को भी दिखाया गया है. हमारा सुझाव है कि जहां भी आपने दिलचस्पी के हिसाब से बटन दिखाया है वहां One Tap पॉप-अप भी दिखाएं. इससे साइन-अप और साइन-इन के दौरान, उपयोगकर्ता को कम परेशानी होगी.

साइन इन करने में होने वाली परेशानी बढ़ने की वजह से, इसका सुझाव नहीं दिया जाता. हालांकि, नए मनमुताबिक बटन को सिर्फ़ तब दिखाया जा सकता है, जब एक टैप वाले डायलॉग को एक साथ न दिखाया जाए. इसके लिए, data-auto_prompt एट्रिब्यूट को false पर सेट करें.

एचटीएमएल और JavaScript API

पिछले उदाहरण में, आपकी वेबसाइट पर साइन-इन करने की सुविधा जोड़ने के लिए, नए HTML API का इस्तेमाल करने का तरीका बताया गया है. इसके अलावा, फ़ंक्शन के हिसाब से एक जैसे JavaScript API का इस्तेमाल किया जा सकता है. इसके अलावा, अपनी साइट पर एचटीएमएल और JavaScript API को मिलाकर इस्तेमाल किया जा सकता है.

बटन को पसंद के मुताबिक बनाने के विकल्पों को इंटरैक्टिव तरीके से देखने के लिए, हमारे कोड जनरेटर को देखें. जैसे, कॉल बैक टाइप और एट्रिब्यूट: रंग, साइज़, आकार, टेक्स्ट, और थीम. इसका इस्तेमाल अलग-अलग विकल्पों की तुलना करने और अपनी साइट पर इस्तेमाल करने के लिए, एचटीएमएल स्निपेट जनरेट करने के लिए किया जा सकता है.

One Tap की मदद से, किसी भी पेज से साइन-इन करना

One Tap, उपयोगकर्ताओं के लिए आपकी साइट पर साइन-अप या साइन-इन करने का एक नया और आसान तरीका है. इससे, उपयोगकर्ताओं को आपकी साइट के किसी भी पेज से सीधे साइन-इन करने की सुविधा मिलती है. साथ ही, उन्हें लॉगिन पेज पर जाने की ज़रूरत नहीं पड़ती. दूसरे शब्दों में कहें, तो इससे साइन-अप और साइन-इन करने में आने वाली मुश्किल कम हो जाती है. ऐसा इसलिए, क्योंकि उपयोगकर्ताओं को लॉगिन पेज के अलावा अन्य पेजों से भी साइन-अप और साइन-इन करने की सुविधा मिलती है.

हमारा सुझाव है कि किसी भी पेज से साइन-इन करने की सुविधा चालू करने के लिए, g_id_onload को शेयर किए गए हेडर, फ़ुटर या आपकी पूरी साइट पर शामिल किए गए किसी अन्य ऑब्जेक्ट में शामिल करें.

हमारा यह भी सुझाव है कि आप g_id_signin को सिर्फ़ अपने लॉगिन या उपयोगकर्ता खाता मैनेजमेंट पेजों पर जोड़ें. इससे, लोगों को उनकी दिलचस्पी के हिसाब से साइन-इन बटन दिखेगा. उपयोगकर्ताओं को साइन-अप या साइन-इन करने के विकल्प दें. इसके लिए, बटन को फ़ेडरेटेड आइडेंटिटी प्रोवाइडर (एफआईपी) के अन्य बटन और उपयोगकर्ता नाम और पासवर्ड डालने के फ़ील्ड के साथ दिखाएं.

टोकन रिस्पॉन्स

उपयोगकर्ता को साइन-इन करने के लिए, अब OAuth 2.0 के ऑथराइज़ेशन कोड, ऐक्सेस टोकन या रीफ़्रेश टोकन को समझने या उनके साथ काम करने की ज़रूरत नहीं है. इसके बजाय, JSON Web Token (JWT) आईडी टोकन का इस्तेमाल, साइन-इन की स्थिति और उपयोगकर्ता प्रोफ़ाइल शेयर करने के लिए किया जाता है. इसे और भी आसान बनाने के लिए, अब आपको उपयोगकर्ता की प्रोफ़ाइल के डेटा के साथ काम करने के लिए, "getter" स्टाइल वाले ऐक्सेस करने के तरीकों का इस्तेमाल करने की ज़रूरत नहीं है.

Google के हस्ताक्षर वाला सुरक्षित JWT आईडी टोकन क्रेडेंशियल, इनमें से किसी एक तरीके से वापस भेजा जाता है:

  • पॉप-अप मोड में, उपयोगकर्ता के ब्राउज़र पर आधारित JavaScript कॉलबैक हैंडलर को, या
  • को आपके बैकएंड सर्वर पर भेजता है. ऐसा तब होता है, जब 'Google से साइन इन करें' बटन ux_mode को redirect पर सेट किया जाता है.

इन दोनों मामलों में, अपने मौजूदा कॉलबैक हैंडलर को अपडेट करें. इसके लिए, इन्हें हटाएं:

  • googleUser.getBasicProfile() पर किए गए कॉल,
  • BasicProfile के रेफ़रंस और getId(), getName(), getGivenName(), getFamilyName(), getImageUrl(), getEmail() तरीकों से जुड़े कॉल, और
  • AuthResponse ऑब्जेक्ट का इस्तेमाल किया जा रहा है.

इसके बजाय, उपयोगकर्ता की प्रोफ़ाइल के डेटा के साथ काम करने के लिए, नए JWT CredentialResponse ऑब्जेक्ट में credential सब-फ़ील्ड के डायरेक्ट रेफ़रंस का इस्तेमाल करें.

इसके अलावा, सिर्फ़ रीडायरेक्ट मोड के लिए, पक्का करें कि आपने क्रॉस-साइट रिक्वेस्ट फ़र्ज़ीवाड़े (सीएसआरएफ़) को रोका हो और अपने बैकएंड सर्वर पर Google आईडी टोकन की पुष्टि की हो.

उपयोगकर्ता आपकी साइट के साथ कैसे इंटरैक्ट कर रहे हैं, इसे बेहतर तरीके से समझने के लिए, CredentialResponse में मौजूद select_by फ़ील्ड का इस्तेमाल किया जा सकता है. इससे, उपयोगकर्ता की सहमति के नतीजे और इस्तेमाल किए गए साइन-इन फ़्लो के बारे में पता चलता है.

जब कोई व्यक्ति पहली बार आपकी वेबसाइट पर साइन इन करता है, तो Google उससे सहमति मांगता है. यह सहमति, उसकी खाता प्रोफ़ाइल को आपके ऐप्लिकेशन के साथ शेयर करने के लिए मांगी जाती है. सहमति देने के बाद ही, व्यक्ति की प्रोफ़ाइल को आपके ऐप्लिकेशन के साथ शेयर किया जाता है. यह प्रोफ़ाइल, आईडी टोकन क्रेडेंशियल पेलोड में शेयर की जाती है. इस प्रोफ़ाइल का ऐक्सेस रद्द करने का मतलब है कि आपने साइन-इन करने की पुरानी लाइब्रेरी में ऐक्सेस टोकन रद्द कर दिया है.

उपयोगकर्ता, https://myaccount.google.com/permissions पर जाकर, अनुमतियां रद्द कर सकते हैं. साथ ही, आपके ऐप्लिकेशन को अपने Google खाते से डिसकनेक्ट कर सकते हैं. इसके अलावा, वे सीधे तौर पर आपके ऐप्लिकेशन से भी सदस्यता रद्द कर सकते हैं. इसके लिए, उन्हें एपीआई कॉल ट्रिगर करना होगा. यह कॉल, आपको लागू करना होगा. disconnect वाले पुराने तरीके की जगह, revoke वाला नया तरीका इस्तेमाल किया जाता है.

जब कोई उपयोगकर्ता आपके प्लैटफ़ॉर्म पर अपना खाता मिटाता है, तो सबसे सही तरीका यह है कि आप revoke का इस्तेमाल करके, अपने ऐप्लिकेशन को उसके Google खाते से डिसकनेक्ट करें.

पहले, auth2.signOut() का इस्तेमाल, आपके ऐप्लिकेशन से उपयोगकर्ता के साइन-आउट को मैनेज करने में मदद पाने के लिए किया जा सकता था. auth2.signOut() के किसी भी इस्तेमाल को हटा दिया जाना चाहिए. साथ ही, आपके ऐप्लिकेशन को सीधे तौर पर, हर उपयोगकर्ता के सेशन की स्थिति और साइन-इन की स्थिति को मैनेज करना चाहिए.

सेशन की स्थिति और सुनने वाले लोग

नई लाइब्रेरी, आपके वेब ऐप्लिकेशन के लिए साइन-इन की स्थिति या सेशन की स्थिति को बनाए नहीं रखती है.

Google खाते में साइन इन करने की स्थिति, आपके ऐप्लिकेशन के सेशन की स्थिति, और साइन इन करने की स्थिति अलग-अलग कॉन्सेप्ट हैं.

उपयोगकर्ता के Google खाते और आपके ऐप्लिकेशन में साइन इन करने की स्थिति एक-दूसरे से अलग होती है. हालांकि, साइन इन करने के दौरान ऐसा नहीं होता. इस दौरान, आपको पता होता है कि उपयोगकर्ता ने पुष्टि कर ली है और वह अपने Google खाते में साइन इन है.

अगर आपकी साइट पर 'Google से साइन इन करें', 'एक टैप करके साइन इन करें' या 'अपने-आप साइन इन होने की सुविधा' शामिल हैं, तो उपयोगकर्ताओं को अपने Google खाते में साइन इन करना होगा. ऐसा इन कामों के लिए करना होगा:

  • आपकी साइट पर पहली बार साइन-अप या साइन-इन करते समय, अपनी उपयोगकर्ता प्रोफ़ाइल शेयर करने की सहमति दें,
  • और बाद में, आपकी साइट पर दोबारा आने पर साइन-इन करने के लिए.

उपयोगकर्ता आपकी वेबसाइट पर साइन इन किए हुए सेशन के दौरान, साइन इन रह सकते हैं, साइन आउट कर सकते हैं या किसी दूसरे Google खाते पर स्विच कर सकते हैं.

अब आपके पास, अपने वेब ऐप्लिकेशन के उपयोगकर्ताओं के लिए, साइन इन की स्थिति को सीधे तौर पर मैनेज करने की ज़िम्मेदारी है. इससे पहले, Google Sign-In की मदद से उपयोगकर्ता के सेशन की स्थिति को मॉनिटर किया जाता था.

auth2.attachClickHandler() और इसके रजिस्टर किए गए कॉलबैक हैंडलर के सभी रेफ़रंस हटाएं.

पहले, Listeners का इस्तेमाल, किसी उपयोगकर्ता के Google खाते के लिए साइन इन की स्थिति में हुए बदलावों को शेयर करने के लिए किया जाता था. लिसनर अब काम नहीं करते.

listen(), auth2.currentUser, और auth2.isSignedIn के सभी रेफ़रंस हटाएं.

कुकी

'Google से साइन इन करें' सुविधा, कुकी का सीमित इस्तेमाल करती है. इन कुकी के बारे में यहां बताया गया है. Google जिन अन्य तरह की कुकी का इस्तेमाल करता है उनके बारे में ज़्यादा जानने के लिए, Google, कुकी का इस्तेमाल कैसे करता है लेख पढ़ें.

Google Sign-in Platform Library की ओर से सेट की गई G_ENABLED_IDPS कुकी का अब इस्तेमाल नहीं किया जाता.

Google Identity Services की नई लाइब्रेरी, आपके कॉन्फ़िगरेशन के विकल्पों के आधार पर, इन क्रॉस-डोमेन कुकी को सेट कर सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है:

  • g_state इस कुकी में उपयोगकर्ता के साइन आउट करने की स्थिति सेव होती है. इसे तब सेट किया जाता है, जब One Tap पॉप-अप या अपने-आप साइन इन होने की सुविधा का इस्तेमाल किया जाता है,
  • g_csrf_token एक डबल-सबमिट कुकी है. इसका इस्तेमाल सीएसआरएफ़ हमलों को रोकने के लिए किया जाता है. यह तब सेट होती है, जब आपके लॉगिन एंडपॉइंट को कॉल किया जाता है. आपके लॉगिन यूआरआई की वैल्यू को साफ़ तौर पर सेट किया जा सकता है. इसके अलावा, यह मौजूदा पेज के यूआरआई पर डिफ़ॉल्ट रूप से सेट हो सकती है. इन स्थितियों में, आपके लॉगिन एंडपॉइंट को कॉल किया जा सकता है:

    • एचटीएमएल एपीआई के साथ data-ux_mode=redirect या data-login_uri सेट होने पर या

    • ux_mode=redirect के साथ JavaScript API और जहां One Tap या अपने-आप साइन इन होने की सुविधा दिखाने के लिए google.accounts.id.prompt() का इस्तेमाल नहीं किया जाता है.

अगर आपके पास कुकी मैनेज करने वाली कोई सेवा है, तो माइग्रेशन पूरा होने के बाद, दो नई कुकी जोड़ना न भूलें. साथ ही, पुरानी कुकी हटा दें.

अगर आपको एक से ज़्यादा डोमेन या सबडोमेन मैनेज करने हैं, तो g_state कुकी का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, सभी सबडोमेन पर 'एक टैप करके साइन इन करें' सुविधा दिखाना लेख पढ़ें.

उपयोगकर्ता के साइन-इन के लिए ऑब्जेक्ट माइग्रेशन का रेफ़रंस

पुराना नई सुविधा नोट
JavaScript लाइब्रेरी
apis.google.com/js/platform.js accounts.google.com/gsi/client पुराने को नए से बदलें.
apis.google.com/js/api.js accounts.google.com/gsi/client पुराने को नए से बदलें.
GoogleAuth ऑब्जेक्ट और उससे जुड़े तरीके:
GoogleAuth.attachClickHandler() IdConfiguration.callback for JS and HTML data-callback पुराने को नए से बदलें.
GoogleAuth.currentUser.get() CredentialResponse इसके बजाय, CredentialResponse का इस्तेमाल करें. अब इसकी ज़रूरत नहीं है.
GoogleAuth.currentUser.listen() हटाएं पर टैप करें. Google पर उपयोगकर्ता के मौजूदा साइन-इन स्टेटस की जानकारी उपलब्ध नहीं है. सहमति लेने और साइन-इन करने के लिए, उपयोगकर्ताओं को Google में साइन-इन करना होगा. CredentialResponse में मौजूद select_by फ़ील्ड का इस्तेमाल, उपयोगकर्ता की सहमति के साथ-साथ इस्तेमाल किए गए साइन-इन के तरीके का नतीजा तय करने के लिए किया जा सकता है.
GoogleAuth.disconnect() google.accounts.id.revoke पुराने को नए से बदलें. https://myaccount.google.com/permissions पर जाकर भी ऐक्सेस रद्द किया जा सकता है
GoogleAuth.grantOfflineAccess() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
GoogleAuth.isSignedIn.get() हटाएं पर टैप करें. Google पर उपयोगकर्ता के मौजूदा साइन-इन स्टेटस की जानकारी उपलब्ध नहीं है. सहमति लेने और साइन-इन करने के लिए, उपयोगकर्ताओं को Google में साइन-इन करना होगा.
GoogleAuth.isSignedIn.listen() हटाएं पर टैप करें. Google पर उपयोगकर्ता के मौजूदा साइन-इन स्टेटस की जानकारी उपलब्ध नहीं है. सहमति लेने और साइन-इन करने के लिए, उपयोगकर्ताओं को Google में साइन-इन करना होगा.
GoogleAuth.signIn() हटाएं पर टैप करें. g_id_signin एलिमेंट का एचटीएमएल डीओएम लोड होने पर या google.accounts.id.renderButton को JS कॉल करने पर, उपयोगकर्ता को Google खाते में साइन इन करने के लिए ट्रिगर किया जाता है.
GoogleAuth.signOut() हटाएं पर टैप करें. आपके ऐप्लिकेशन और Google खाते के लिए, उपयोगकर्ता के साइन-इन की स्थिति अलग-अलग होती है. Google, आपके ऐप्लिकेशन के लिए सेशन की स्थिति को मैनेज नहीं करता है.
GoogleAuth.then() हटाएं पर टैप करें. GoogleAuth का अब इस्तेमाल नहीं किया जा सकता.
GoogleUser ऑब्जेक्ट और उससे जुड़े तरीके:
GoogleUser.disconnect() google.accounts.id.revoke पुराने को नए से बदलें. https://myaccount.google.com/permissions पर जाकर भी ऐक्सेस रद्द किया जा सकता है
GoogleUser.getAuthResponse()
GoogleUser.getBasicProfile() CredentialResponse BasicProfile तरीकों के बजाय, सीधे तौर पर credential और सब-फ़ील्ड का इस्तेमाल करें.
GoogleUser.getGrantedScopes() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
GoogleUser.getHostedDomain() CredentialResponse इसके बजाय, सीधे credential.hd का इस्तेमाल करें.
GoogleUser.getId() CredentialResponse इसके बजाय, सीधे credential.sub का इस्तेमाल करें.
GoogleUser.grantOfflineAccess() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
GoogleUser.grant() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
GoogleUser.hasGrantedScopes() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
GoogleUser.isSignedIn() हटाएं पर टैप करें. Google पर उपयोगकर्ता के मौजूदा साइन-इन स्टेटस की जानकारी उपलब्ध नहीं है. सहमति लेने और साइन-इन करने के लिए, उपयोगकर्ताओं को Google में साइन-इन करना होगा.
GoogleUser.reloadAuthResponse() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2 ऑब्जेक्ट और उससे जुड़े तरीके:
gapi.auth2.AuthorizeConfig ऑब्जेक्ट हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.AuthorizeResponse ऑब्जेक्ट हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.AuthResponse ऑब्जेक्ट हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.authorize() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.ClientConfig() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.getAuthInstance() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.init() हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.OfflineAccessOptions ऑब्जेक्ट हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.auth2.SignInOptions ऑब्जेक्ट हटाएं पर टैप करें. आईडी टोकन ने OAuth 2.0 ऐक्सेस टोकन और स्कोप की जगह ले ली है.
gapi.signin2 ऑब्जेक्ट और उससे जुड़े तरीके:
gapi.signin2.render() हटाएं पर टैप करें. g_id_signin एलिमेंट का एचटीएमएल डीओएम लोड होने पर या google.accounts.id.renderButton को JS कॉल करने पर, उपयोगकर्ता को Google खाते में साइन इन करने के लिए ट्रिगर किया जाता है.