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

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

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

अगर आपको लगता है कि सहमति वाली स्क्रीन बहुत लंबी होने की वजह से उपयोगकर्ता साइन इन नहीं कर रहे हैं या उन्हें इस बात की जानकारी नहीं है कि उनसे कुछ अनुमतियां क्यों मांगी जा रही हैं, तो इस तकनीक का इस्तेमाल करें. यहां दिए गए निर्देश वेब के लिए हैं. ये क्लाइंट-साइड साइन-इन बटन जोड़ने के निर्देशों से लिए गए हैं: Google 2.0 साइन-इन बटन बनाना. OAuth 2.0 दस्तावेज़ में, वेब के लिए बढ़ते हुए अनुमति देने के बारे में ज़्यादा जानकारी मिल सकती है.

अतिरिक्त स्कोप का अनुरोध करना

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

पहला चरण: बुनियादी स्कोप का अनुरोध करना

Google Sign-In को शुरू करते समय, बुनियादी स्कोप 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}));
    });