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. Con l'autorizzazione incrementale, l'app richiede inizialmente solo gli ambiti necessario per avviare l'app, poi richiede ambiti aggiuntivi con le nuove autorizzazioni in un contesto che identifichi il motivo della richiesta al 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 accedano perché il tuo schermata per il consenso è troppo impegnativa o non è chiara la ragione per cui viene chiesto per alcune 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, la tua app richiede "di base" costituiti dall'ambito di accesso
profile
più eventuali altri ambiti iniziali richiesti dalla tua app per il funzionamento.
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}));
});