उपयोगकर्ता के डेटा या अन्य संसाधनों को ऐक्सेस करने की अनुमति मांगते समय, शुरुआती अनुरोध में सभी स्कोप का अनुरोध किया जा सकता है. इसके अलावा, बढ़ती हुई अनुमति का इस्तेमाल करके, सिर्फ़ ज़रूरत के हिसाब से स्कोप का अनुरोध किया जा सकता है. इंंक्रीमेंटल अनुमति का इस्तेमाल करके, आपका ऐप्लिकेशन शुरुआत में सिर्फ़ स्कोप का अनुरोध करता है आपका ऐप्लिकेशन शुरू करना ज़रूरी है. इसके बाद, नई अनुमतियों के तौर पर अतिरिक्त दायरों का अनुरोध किया जाता है के लिए अनुरोध की वजह की पहचान करना ज़रूरी हो. उपयोगकर्ता.
उदाहरण के लिए, मान लें कि आपका ऐप्लिकेशन उपयोगकर्ताओं को संगीत प्लेलिस्ट सेव करने की सुविधा देता है Google Drive को ऐक्सेस करना है. आपका ऐप्लिकेशन, साइन-इन करते समय उपयोगकर्ता की बुनियादी जानकारी मांग सकता है. और बाद में, जब उपयोगकर्ता अपनी पहली प्लेलिस्ट सेव करने के लिए तैयार होता है, सिर्फ़ Google Drive की अनुमतियां मांगें.
अगर आपको लगता है कि उपयोगकर्ता साइन इन नहीं कर रहे हैं, तो इस तकनीक का इस्तेमाल करें सहमति वाली स्क्रीन बहुत ज़्यादा दिख रही है या इस बात को लेकर उलझन में हैं कि उनसे क्यों पूछा जा रहा है कुछ अनुमतियों के लिए. यहां दिए गए निर्देश वेब के लिए हैं. इन्हें क्लाइंट-साइड साइन-इन बटन जोड़ने के निर्देशों से लिया गया है: Google 2.0 साइन-इन बटन बनाना. वेब के लिए, धीरे-धीरे अनुमति देने की सुविधा के बारे में ज़्यादा जानने के लिए, OAuth 2.0 दस्तावेज़ पढ़ें.
अतिरिक्त दायरों का अनुरोध करना
साइन इन करते समय, आपका ऐप्लिकेशन "बेस" का अनुरोध करता है स्कोप, जिनमें साइन-इन करने का स्कोप शामिल है
profile
और आपके ऐप्लिकेशन को इस्तेमाल करने के लिए ज़रूरी शुरुआती स्कोप.
बाद में, जब उपयोगकर्ता कोई ऐसी कार्रवाई करना चाहता है जिसके लिए
आपके ऐप्लिकेशन के लिए उन अतिरिक्त दायरों का अनुरोध किया जाता है और उपयोगकर्ता सिर्फ़ उन्हें अनुमति देता है
सहमति वाली स्क्रीन से नए दायरे.
पहला चरण: बुनियादी दायरों का अनुरोध करना
'Google साइन इन' शुरू करते समय, बुनियादी स्कोप profile
के लिए अनुरोध करें. यह
कदम इसमें शामिल है
Google 2.0 साइन-इन बटन बनाना.
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin', /** Default value **/
scope: 'profile' }); /** Base scope **/
दूसरा चरण: अतिरिक्त दायरों का अनुरोध करना
जहां भी अतिरिक्त स्कोप की ज़रूरत हो, वहां एक विकल्प बनाकर उनका अनुरोध करें
बिल्डर में उन स्कोप का इस्तेमाल करें जिन्हें आपको जोड़ना है. इसके बाद, user.grant({scope:
[OPTIONS BUILDER]}).then(successFunction, failFunction);
को कॉल करें:
const options = new gapi.auth2.SigninOptionsBuilder();
options.setScope('email https://www.googleapis.com/auth/drive');
googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
function(success){
console.log(JSON.stringify({message: "success", value: success}));
},
function(fail){
alert(JSON.stringify({message: "fail", value: fail}));
});