Richiesta di autorizzazioni aggiuntive

Quando si richiede l'autorizzazione dell'utente ad accedere ai dati utente o ad altri dati di risorse, puoi richiedere in anticipo tutti gli ambiti nella richiesta iniziale gli ambiti delle richieste solo in base alle esigenze, utilizzando l'autorizzazione incrementale. Se utilizzi l'autorizzazione incrementale, la tua app richiede inizialmente solo gli ambiti necessari per avviarsi, quindi richiede ambiti aggiuntivi man mano che 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 a 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, richiedere solo le autorizzazioni di Google Drive.

Utilizza questa tecnica se sospetti che gli utenti non riescano ad accedere perché la schermata del consenso è troppo complessa o non sanno perché gli vengono richieste determinate autorizzazioni. Le seguenti istruzioni sono per il web e derivano dal Istruzioni per aggiungere un pulsante di accesso lato client: Creazione di un pulsante Accedi a Google 2.0. Puoi trovare ulteriori informazioni sull'autorizzazione incrementale per il web nel Documentazione relativa a OAuth 2.0.

Richiesta di ambiti aggiuntivi

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

Passaggio 1: richiedi gli ambiti di base

Richiedi l'ambito di base profile durante l'inizializzazione di Accedi con Google. Questo è incluso in Creazione di un pulsante Accedi a 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'opzione Builder con gli ambiti che vuoi aggiungere e quindi chiamare 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}));
    });