दायरे में हुए बदलावों का असर उपयोगकर्ताओं पर कम करने के लिए उठाए जाने वाले कदम
- अगर आपके ऐप्लिकेशन को पुष्टि किए गए उपयोगकर्ता का ईमेल पता चाहिए और आपने पहले इस काम के लिए
profile.emails.read
का इस्तेमाल किया है, तो इसके बजायemail
का इस्तेमाल करें. - पुष्टि के लिए किए गए अनुरोध को स्वीकार करने के बाद,
profile.emails.read
के लिए अनुमति पाएं. मैं ऐप्लिकेशन को पुष्टि के लिए कैसे सबमिट करूं? लेख पढ़ें. - जिस स्कोप को हटाना है उससे जुड़े उपयोगकर्ता के पुराने टोकन को रद्द करें या ऐप्लिकेशन का ऐक्सेस पूरी तरह से हटाएं. उदाहरण के लिए,
profile.emails.read
ऐक्सेस वाले टोकन को रद्द कर दिया जाना चाहिए. हमारा सुझाव है कि आप अपने उपयोगकर्ताओं को ऐप्लिकेशन में रहते हुए ही सहमति रद्द करने की सुविधा दें, ताकि आप तुरंत उनकी सहमति पा सकें. - अपने उपयोगकर्ताओं को
profile.emails.read
के बिना, नए दायरे, जैसे किemail
के साथ फिर से सहमति देने के लिए कहें. - Google API के OAuth सहमति स्क्रीन कॉन्फ़िगरेशन से उस स्कोप को हटाएं जिसे हटाना है.
अपनी साइट को Google+ साइन-इन से Google साइन-इन पर माइग्रेट करने के लिए, आपको जो बदलाव करने होंगे वे इस बात पर निर्भर करते हैं कि Google+ साइन-इन के किस फ़्लो का इस्तेमाल किया जा रहा है. आम तौर पर, माइग्रेशन के लिए, आपको साइन इन बटन, अनुरोध किए गए स्कोप, और Google से प्रोफ़ाइल की जानकारी वापस पाने के निर्देश अपडेट करने होंगे.
साइन इन बटन को अपडेट करते समय, G+ का रेफ़रंस न दें या लाल रंग का इस्तेमाल न करें. ब्रैंडिंग के लिए बने हमारे अपडेट किए गए दिशा-निर्देशों का पालन करें.
G+ साइन-इन के ज़्यादातर ऐप्लिकेशन ने इन स्कोप के कॉम्बिनेशन का अनुरोध किया है:
plus.login
, plus.me
, और plus.profile.emails.read
. आपको अपने स्कोप को इस तरह से फिर से मैप करना होगा:
पुराना स्कोप | नया स्कोप |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
Google+ साइन-इन को लागू करने वाले कई लोगों ने कोड फ़्लो का इस्तेमाल किया. इसका मतलब है कि Android, iOS या JavaScript ऐप्लिकेशन, Google से OAuth कोड पाते हैं. इसके बाद, क्लाइंट उस कोड को सर्वर पर भेजता है. साथ ही, क्रॉस-साइट अनुरोध के लिए, नकली पहचान से जुड़ी सुरक्षा भी भेजता है. इसके बाद, सर्वर कोड की पुष्टि करता है और people.get
एपीआई से उपयोगकर्ता की प्रोफ़ाइल की जानकारी पाने के लिए, रीफ़्रेश और ऐक्सेस टोकन हासिल करता है.
Google अब आपको आईडी टोकन का अनुरोध करने और उस आईडी टोकन को अपने क्लाइंट से अपने सर्वर पर भेजने का सुझाव देता है. आईडी टोकन में, एक से ज़्यादा साइटों पर जालसाजी से बचाने के लिए, पहले से सुरक्षा की सुविधाएं मौजूद होती हैं. साथ ही, इनकी पुष्टि आपके सर्वर पर स्टैटिक तरीके से की जा सकती है. इससे, Google के सर्वर से उपयोगकर्ता की प्रोफ़ाइल की जानकारी पाने के लिए, अतिरिक्त एपीआई कॉल करने की ज़रूरत नहीं पड़ती. अपने सर्वर पर आईडी टोकन की पुष्टि करने के लिए, दिए गए निर्देशों का पालन करें.
अगर आपको अब भी प्रोफ़ाइल की जानकारी पाने के लिए कोड फ़्लो का इस्तेमाल करना है, तो ऐसा किया जा सकता है. जब आपके सर्वर के पास ऐक्सेस टोकन हो जाएगा, तो आपको हमारे साइन-इन डिस्कवरी दस्तावेज़ में बताए गए userinfo
एंडपॉइंट से उपयोगकर्ता की प्रोफ़ाइल की जानकारी पाना होगा. एपीआई के जवाब का फ़ॉर्मैट, Google+ प्रोफ़ाइल के जवाब से अलग होता है. इसलिए, आपको पार्स करने की सुविधा को नए फ़ॉर्मैट में अपडेट करना होगा.
एचटीएमएल साइन इन बटन को माइग्रेट करना
अगर आपने किसी एलिमेंट को क्लास g-signin
असाइन करके, अपने पेज में 'Google+ साइन इन' बटन शामिल किया है, तो ये बदलाव करें:
<meta>
टैग,data-
एट्रिब्यूट या पैरामीटर ऑब्जेक्ट में अपना क्लाइंट आईडी बताते समय, स्ट्रिंगclientid
कोclient_id
में बदलें. उदाहरण के लिए:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
साइन इन बटन एलिमेंट को
g-signin
के बजाय, क्लासg-signin2
असाइन करें. साथ ही, एक कॉलबैक के बजाय, सदस्यता लिंक होने और न होने के लिए अलग-अलग कॉलबैक तय करें, जैसा कि इस उदाहरण में बताया गया है:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-callback="signinCallback"> </div>
<!-- Google Sign-in (new) --> <div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onSignInFailure"> </div>
एक कॉलबैक हैंडलर के बजाय, सफलता और गड़बड़ी के हैंडलर तय करें, जैसा कि इस उदाहरण में बताया गया है:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
इन बदलावों से, आपके डिफ़ॉल्ट स्कोप
profile email openid
पर अपडेट हो जाएंगे. उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी, जैसे कि नाम, ईमेल, और फ़ोटो के इमेज यूआरएल को इस तरह से ऐक्सेस किया जा सकता है:// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
डाइनैमिक तौर पर रेंडर किए गए साइन इन बटन को माइग्रेट करना
अगर आपने gapi.signin.render()
को कॉल करके, अपने पेज में 'Google+ साइन इन' बटन शामिल किया है, तो ये बदलाव करें:
<meta>
टैग,data-
एट्रिब्यूट या पैरामीटर ऑब्जेक्ट में अपना क्लाइंट आईडी बताते समय, स्ट्रिंगclientid
कोclient_id
में बदलें. उदाहरण के लिए:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
साइन इन बटन को
gapi.signin.render()
के बजायgapi.signin2.render()
के साथ रेंडर करें, जैसा कि इस उदाहरण में दिखाया गया है:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
एक कॉलबैक हैंडलर के बजाय, सफलता और गड़बड़ी के हैंडलर तय करें, जैसा कि इस उदाहरण में बताया गया है:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
इन बदलावों से, आपके डिफ़ॉल्ट स्कोप profile email openid
पर अपडेट हो जाएंगे. getBasicProfile()
तरीके का इस्तेमाल करके, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी हासिल की जा सकती है.
JavaScript से शुरू किए गए साइन-इन फ़्लो को माइग्रेट करना
अगर आपने साइन इन बटन पर उपयोगकर्ताओं के क्लिक करने पर, gapi.auth.signIn()
को कॉल करके साइन इन फ़्लो शुरू किया है, तो ये बदलाव करें:
<meta>
टैग,data-
एट्रिब्यूट या पैरामीटर ऑब्जेक्ट में अपना क्लाइंट आईडी बताते समय, स्ट्रिंगclientid
कोclient_id
में बदलें. उदाहरण के लिए:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
बटन दबाने पर, साइन-इन फ़्लो शुरू करने के लिए
gapi.auth2.attachClickHandler()
का इस्तेमाल करें. उदाहरण के लिए:// Google+ Sign-in (old) var signinButton = document.getElementById('signinButton'); signinButton.addEventListener('click', function() { gapi.auth.signIn(additionalParams); });
// Google Sign-in (new) auth2 = gapi.auth2.init(); auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
एक कॉलबैक हैंडलर के बजाय, सफलता और गड़बड़ी के हैंडलर तय करें, जैसा कि इस उदाहरण में बताया गया है:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
इन बदलावों से, आपके डिफ़ॉल्ट स्कोप profile email openid
पर अपडेट हो जाएंगे. getBasicProfile()
विधि को कॉल करके, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी हासिल की जा सकती है.
हाइब्रिड सर्वर-साइड फ़्लो को माइग्रेट करना
अगर आपने अपने सर्वर को एक बार इस्तेमाल होने वाला अनुमति कोड देने के लिए, JavaScript API का इस्तेमाल किया है, तो ये बदलाव करें:
दायरे को
https://www.googleapis.com/auth/plus.login
से बदलकरprofile
करें.अपने मौजूदा कॉलबैक फ़ंक्शन के साथ
gapi.auth2.grantOfflineAccess()
तरीके का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-clientid="YOUR_CLIENT_ID" data-redirecturi="postmessage" data-accesstype="offline" data-callback="signInCallback"> </div>
// Google Sign-in (new) auth2 = gapi.auth2.init({ client_id: 'YOUR_CLIENT_ID', scope: 'profile' }); ... auth2.grantOfflineAccess().then(signInCallback);
अगर आपको उपयोगकर्ता के ईमेल का ऐक्सेस भी चाहिए, तो स्कोप पैरामीटर में email
जोड़ें.