Demander des autorisations supplémentaires

Lorsque vous demandez à un utilisateur l'autorisation d'accéder à des données utilisateur ou à d'autres ressources, vous pouvez demander tous les champs d'application à l'avance dans la requête initiale ou seulement si nécessaire, à l'aide d'une autorisation incrémentielle. Avec l'autorisation incrémentielle, votre application demande d'abord uniquement les niveaux d'accès requis pour la démarrer, puis demande des champs d'application supplémentaires lorsque de nouvelles autorisations sont requises, dans un contexte qui identifie le motif de la demande auprès de 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, plus tard, lorsque l'utilisateur est prêt à enregistrer sa première playlist, demander uniquement les autorisations Google Drive.

Utilisez cette technique si vous pensez que les utilisateurs ne se connectent pas parce que votre écran d'autorisation est surchargé, ou si vous ne comprenez pas pourquoi certaines autorisations leur sont demandées. Les instructions suivantes sont destinées au Web et sont basées sur les 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

Au moment de la connexion, votre application demande un champ d'application de "base", composé du champ d'application de connexion profile plus tout autre champ d'application initial dont votre application a besoin pour fonctionner. Par la suite, lorsque l'utilisateur souhaite effectuer une action nécessitant des champs d'application supplémentaires, votre application demande ces champs d'application supplémentaires et l'utilisateur n'autorise que les nouveaux champs d'application à partir d'un écran de consentement.

Étape 1: Demandez des niveaux d'accès 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 champs d'application supplémentaires

Chaque fois que vous avez besoin de champs d'application supplémentaires, demandez-les. Pour ce faire, créez un compilateur d'options avec les champs d'application que vous souhaitez ajouter, puis appelez 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}));
    });