Lorsque vous demandez à un utilisateur l'autorisation d'accéder à ses données ou à d'autres ressources, vous pouvez demander tous les champs d'application à l'avance dans la requête initiale ou les champs d'application des requêtes uniquement si nécessaire, par le biais d'une autorisation incrémentielle. Avec une autorisation incrémentielle, votre application ne demande initialement que les champs d'application nécessaires au démarrage de votre application, puis demande des champs d'application supplémentaires en tant que nouvelles autorisations sont requises, dans un contexte indiquant le motif de la demande utilisateur.
Par exemple, supposons que votre application permette aux utilisateurs d'enregistrer des playlists musicales vers Google Drive ; votre application peut demander des informations utilisateur de base lors de la connexion, Ensuite, 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 l'écran de consentement est submergé ou ne sait pas pourquoi on lui demande pour certaines autorisations. Les instructions suivantes concernent le Web et sont issues de la Instructions pour ajouter un bouton de connexion côté client: Créer un bouton Google 2.0 Sign-In Pour en savoir plus sur l'autorisation incrémentielle pour le Web, consultez le Documentation OAuth 2.0
Demander des niveaux d'accès supplémentaires
Lors de la connexion, votre application demande "base" les champs d'application, c'est-à-dire ceux de la connexion
profile
, ainsi que tout autre niveau d'accès initial dont votre application a besoin pour fonctionner
Plus tard, lorsque l'utilisateur souhaite effectuer une action qui nécessite des
des champs d'application supplémentaires, votre application les demande et l'utilisateur n'autorise
les nouveaux champs d'application
à 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. Ce
est incluse dans
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
Si vous avez besoin de niveaux d'accès supplémentaires, demandez-les en créant une option
compilateur 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}));
});