Richiesta di autorizzazioni aggiuntive

Se richiedi l'autorizzazione utente per accedere ai dati utente o ad altre risorse, puoi richiedere tutti gli ambiti in anticipo nella richiesta iniziale o solo in base alle esigenze, utilizzando l'autorizzazione incrementale. Utilizzando l'autorizzazione incrementale, l'app richiede inizialmente solo gli ambiti necessari per avviare l'app, dopodiché richiede ambiti aggiuntivi man mano che sono necessarie nuove autorizzazioni, in un contesto che identifichi il motivo della richiesta all'utente.

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

Utilizza questa tecnica se sospetti che gli utenti non accedano perché la tua schermata di consenso è troppo alta o non sai perché vengono richieste determinate autorizzazioni. Le seguenti istruzioni sono per il web e sono derivate da quelle per aggiungere un pulsante di accesso lato client: Creazione di un pulsante Accedi con Google 2.0. Puoi leggere ulteriori informazioni sull'autorizzazione incrementale per il web nella documentazione relativa a OAuth 2.0.

Richiesta di ambiti aggiuntivi

Al momento dell'accesso, l'app richiede ambiti "di base", costituiti dall'ambito di accesso profile ed eventuali altri ambiti iniziali richiesti dall'app per il funzionamento. In seguito, quando l'utente vuole eseguire un'azione che richiede ambiti aggiuntivi, la tua app richiede gli 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 al momento dell'inizializzazione di Accedi con Google. Questo passaggio è incluso in 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

Ovunque siano necessari ambiti aggiuntivi, richiedili creando un generatore di opzioni con gli ambiti che vuoi aggiungere, quindi chiamando user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);:

const option = new gapi.auth2.SigninOptionsBuilder();
option.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}));
    });