उपयोगकर्ता के डेटा या अन्य डेटा को ऐक्सेस करने के लिए, उपयोगकर्ता की अनुमति का अनुरोध करते समय संसाधनों के लिए, शुरुआती अनुरोध में ही सभी दायरों के लिए अनुरोध किया जा सकता है या अनुरोध के दायरे ज़रूरत के हिसाब से होते हैं. इसके लिए, बढ़ोतरी वाली अनुमति का इस्तेमाल किया जाता है. इंंक्रीमेंटल अनुमति का इस्तेमाल करके, आपका ऐप्लिकेशन शुरुआत में सिर्फ़ स्कोप का अनुरोध करता है आपका ऐप्लिकेशन शुरू करना ज़रूरी है. इसके बाद, नई अनुमतियों के तौर पर अतिरिक्त दायरों का अनुरोध किया जाता है के लिए अनुरोध की वजह की पहचान करना ज़रूरी हो. उपयोगकर्ता.
उदाहरण के लिए, मान लें कि आपका ऐप्लिकेशन उपयोगकर्ताओं को संगीत प्लेलिस्ट सेव करने की सुविधा देता है 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}));
});