Richiesta di autorizzazioni aggiuntive

Quando richiedi l'autorizzazione dell'utente per accedere ai dati utente o ad altre risorse, puoi richiedere tutti gli ambiti in anticipo nella richiesta iniziale o richiedere gli ambiti solo se necessario, utilizzando l'autorizzazione incrementale. Con l'autorizzazione incrementale, l'app richiede inizialmente solo gli ambiti necessari per avviare l'app, poi richiede ambiti aggiuntivi quando sono necessarie nuove autorizzazioni in un contesto che identifica il motivo della richiesta all'utente.

Ad esempio, supponiamo che l'app consenta agli utenti di salvare playlist musicali su Google Drive; la tua app può richiedere informazioni utente di base al momento dell'accesso e, in seguito, quando l'utente è pronto a salvare la sua prima playlist, chiedere solo le autorizzazioni di Google Drive.

Utilizza questa tecnica se sospetti che gli utenti non effettuino l'accesso perché la tua schermata di consenso è troppo impegnativa o non sei sicuro del motivo per cui gli vengono richieste determinate autorizzazioni. Le seguenti istruzioni si riferiscono al web e derivano dalle istruzioni per l'aggiunta di un pulsante di accesso lato client: Creazione di un pulsante Accedi con Google 2.0. Per saperne di più sull'autorizzazione incrementale per il web, consulta la documentazione di OAuth 2.0.

Richiesta di ambiti aggiuntivi

Al momento dell'accesso, la tua app richiede ambiti "di base", costituiti dall'ambito dell'accesso profile più eventuali altri ambiti iniziali richiesti dall'app per il funzionamento. In seguito, quando l'utente vorrà eseguire un'azione che richiede ambiti aggiuntivi, la tua app richiederà questi ambiti aggiuntivi e l'utente autorizza solo i nuovi ambiti da una schermata di consenso.

Passaggio 1: richiedi gli ambiti di base

Richiedi l'ambito di base profile durante l'inizializzazione di Accedi con Google. Questo passaggio è incluso nella sezione Creazione di un pulsante Accedi con Google 2.0.

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

Passaggio 2: richiedi ambiti aggiuntivi

Ogni volta che sono necessari ambiti aggiuntivi, richiedili creando un generatore di opzioni con gli ambiti da aggiungere e chiamando 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}));
    });