Lorsque vous demandez à l'utilisateur l'autorisation d'accéder à ses données ou à d'autres ressources, vous pouvez demander tous les champs d'application d'emblée dans la requête initiale ou n'en demander que ceux dont vous avez besoin, à 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. Votre application 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 des autorisations Google Drive.
Utilisez cette technique si vous pensez que les utilisateurs ne se connectent pas parce que votre écran de consentement est trop chargé ou qu'ils ne comprennent pas pourquoi certaines autorisations leur sont demandées. Les instructions suivantes sont destinées au Web et sont issues de celles pour ajouter 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 champs d'application supplémentaires
Lors de la connexion, votre application demande des champs d'application de base, qui consistent en le champ d'application de connexion profile
, ainsi que tous les autres champs d'application initiaux 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 d'autorisation.
Étape 1: Demandez des champs d'application de base
Demandez la portée de base profile
lorsque vous initialisez Google Sign-In. Cette étape est incluse dans la section Créer un bouton de connexion Google 2.0.
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
Lorsque des portées supplémentaires sont nécessaires, demandez-les en créant un compilateur d'options avec les portées 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}));
});