Demander des autorisations supplémentaires

Lorsque vous demandez à l'utilisateur l'autorisation d'accéder à des données utilisateur ou à d'autres ressources, vous pouvez demander tous les niveaux d'accès à l'avance dans la requête initiale, ou ne demander les niveaux d'accès que si nécessaire, à l'aide de l'autorisation incrémentielle. À l'aide d'une autorisation incrémentielle, votre application ne demande initialement que les niveaux d'accès requis pour démarrer votre application, puis demande des champs d'application supplémentaires lorsque de nouvelles autorisations sont requises, dans un contexte qui indique le motif de la demande à l'utilisateur.

Par exemple, supposons que votre application permette aux utilisateurs d'enregistrer des playlists musicales dans Google Drive. Elle peut demander des informations utilisateur de base lors de la connexion, puis, lorsque l'utilisateur est prêt à enregistrer sa première playlist, ne demander que les autorisations Google Drive.

Utilisez cette technique si vous pensez que les utilisateurs ne se connectent pas parce que votre écran de consentement est saturé, ou si vous ne comprenez pas pourquoi certaines autorisations leur sont demandées. Les instructions suivantes concernent le Web et sont issues des instructions d'ajout d'un bouton de connexion côté client : Créer un bouton de connexion Google 2.0. Pour en savoir plus sur l'autorisation incrémentielle pour le Web, consultez la documentation OAuth 2.0.

Demander des niveaux d'accès supplémentaires

Lors de la connexion, votre application demande des champs d'application "de base", qui correspondent au champ d'application de connexion profile et à tout autre niveau d'accès initial dont votre application a besoin pour fonctionner. Par la suite, lorsque l'utilisateur souhaite effectuer une action qui nécessite des champs d'application supplémentaires, votre application demande ces champs d'application supplémentaires et l'utilisateur n'autorise que les nouveaux à partir d'un écran de consentement.

Étape 1: Demander des champs d'application de base

Demandez le champ d'application de base profile lorsque vous initialisez Google Sign-In. Cette étape est incluse dans la section Créer un bouton Google 2.0 Sign-In.

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

Étape 2: Demandez des niveaux d'accès supplémentaires

Chaque fois que des champs d'application supplémentaires sont nécessaires, demandez-les en créant un générateur d'options avec les champs d'application que vous souhaitez ajouter, puis en appelant 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}));
    });