अतिरिक्त अनुमतियों का अनुरोध किया जा रहा है

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

उदाहरण के लिए, मान लीजिए कि आपका ऐप्लिकेशन उपयोगकर्ताओं को 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}));
    });