Étapes à suivre pour minimiser l'impact des modifications de champ d'application sur les utilisateurs
- Si votre application nécessite l'adresse e-mail d'un utilisateur authentifié et que vous avez déjà utilisé
profile.emails.read
à cette fin, utilisez plutôtemail
. - Obtenez l'approbation de
profile.emails.read
avec une demande de validation approuvée. Consultez Comment envoyer mon application pour validation. - Révoquez le jeton utilisateur précédent pour le champ d'application à supprimer ou supprimez complètement l'accès à l'application. Par exemple, un jeton avec un accès
profile.emails.read
doit être révoqué. Nous vous recommandons d'appliquer la révocation lorsque vos utilisateurs se trouvent dans votre application afin de pouvoir obtenir leur consentement immédiatement. - Demandez à vos utilisateurs de donner à nouveau leur consentement avec le nouveau champ d'application, par exemple
email
, sansprofile.emails.read
. - Supprimez le champ d'application qui doit être abandonné de la configuration de l'écran de consentement OAuth de vos API Google.
Les modifications que vous devez apporter pour migrer votre site de Google+ Sign-In vers Google Sign-In dépendent du flux Google+ Sign-In que vous utilisez. En général, la migration nécessite de mettre à jour votre bouton de connexion, les champs d'application demandés et les instructions pour récupérer les informations de profil auprès de Google.
Lorsque vous mettez à jour votre bouton de connexion, ne faites pas référence à G+ et n'utilisez pas la couleur rouge. Respectez nos consignes relatives à la marque mises à jour.
La plupart des applications de connexion Google+ demandaient une combinaison des champs d'application suivants : plus.login
, plus.me
et plus.profile.emails.read
. Vous devez remapper vos champs d'application comme suit:
Ancien champ d'application | Nouveau champ d'application |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
De nombreux implémentateurs de Google+ Sign-In ont utilisé le flux de code. Cela signifie que les applications Android, iOS ou JavaScript obtiennent un code OAuth auprès de Google, et que le client renvoie ce code au serveur, avec une protection contre la falsification des requêtes intersites. Le serveur valide ensuite le code et obtient des jetons d'actualisation et d'accès pour extraire les informations de profil utilisateur de l'API people.get
.
Google vous recommande désormais de demander un jeton d'ID et de l'envoyer de votre client à votre serveur. Les jetons d'identification sont dotés d'une protection intégrée contre la falsification intersites et peuvent également être validés de manière statique sur votre serveur, ce qui évite un appel d'API supplémentaire pour obtenir des informations sur le profil utilisateur à partir des serveurs de Google. Suivez les instructions pour valider les jetons d'identification sur votre serveur.
Si vous préférez toujours utiliser le flux de code pour obtenir des informations de profil, vous pouvez le faire. Une fois que votre serveur dispose d'un jeton d'accès, vous devez obtenir des informations sur le profil utilisateur à partir des points de terminaison userinfo
spécifiés dans notre document de découverte sur la connexion. La réponse de l'API est mise en forme différemment de la réponse du profil Google+. Vous devez donc mettre à jour votre analyse pour utiliser le nouveau format.
Migrer un bouton de connexion HTML
Si vous avez inclus un bouton Google+ Sign-in sur votre page en attribuant la classe g-signin
à un élément, effectuez les modifications suivantes:
Lorsque vous spécifiez votre ID client, que ce soit dans une balise
<meta>
, un attributdata-
ou un objet de paramètres, remplacez la chaîneclientid
parclient_id
, comme dans l'exemple suivant:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Attribuez la classe
g-signin2
à l'élément du bouton de connexion au lieu deg-signin
. Spécifiez également des rappels de réussite et d'échec distincts au lieu d'un seul rappel, comme dans l'exemple suivant:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-callback="signinCallback"> </div>
<!-- Google Sign-in (new) --> <div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onSignInFailure"> </div>
Au lieu d'un seul gestionnaire de rappel, définissez des gestionnaires de réussite et d'échec, comme dans l'exemple suivant:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Ces modifications remplacent vos champs d'application par défaut par
profile email openid
. Vous pouvez obtenir les informations de base du profil de l'utilisateur, comme son nom, son adresse e-mail et l'URL de son image de profil, comme suit:// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
Migrer un bouton de connexion affiché dynamiquement
Si vous avez inclus un bouton Google+ Sign-In sur votre page en appelant gapi.signin.render()
, effectuez les modifications suivantes:
Lorsque vous spécifiez votre ID client, que ce soit dans une balise
<meta>
, un attributdata-
ou un objet de paramètres, remplacez la chaîneclientid
parclient_id
, comme dans l'exemple suivant:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Affichez le bouton de connexion avec
gapi.signin2.render()
plutôt qu'avecgapi.signin.render()
, comme dans l'exemple suivant:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
Au lieu d'un seul gestionnaire de rappel, définissez des gestionnaires de réussite et d'échec, comme dans l'exemple suivant:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Ces modifications remplacent vos champs d'application par défaut par profile email openid
. Vous pouvez obtenir les informations de profil de base de l'utilisateur à l'aide de la méthode getBasicProfile()
.
Migrer un flux de connexion déclenché par JavaScript
Si vous avez lancé le flux de connexion avec un appel à gapi.auth.signIn()
lorsque les utilisateurs cliquent sur le bouton de connexion, apportez les modifications suivantes:
Lorsque vous spécifiez votre ID client, que ce soit dans une balise
<meta>
, un attributdata-
ou un objet de paramètres, remplacez la chaîneclientid
parclient_id
, comme dans l'exemple suivant:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Utilisez
gapi.auth2.attachClickHandler()
pour démarrer le flux de connexion lorsqu'un bouton est enfoncé, comme dans l'exemple suivant:// Google+ Sign-in (old) var signinButton = document.getElementById('signinButton'); signinButton.addEventListener('click', function() { gapi.auth.signIn(additionalParams); });
// Google Sign-in (new) auth2 = gapi.auth2.init(); auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
Au lieu d'un seul gestionnaire de rappel, définissez des gestionnaires de réussite et d'échec, comme dans l'exemple suivant:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Ces modifications remplacent vos champs d'application par défaut par profile email openid
. Vous pouvez obtenir les informations de profil de base de l'utilisateur en appelant la méthode getBasicProfile()
.
Migrer un flux côté serveur hybride
Si vous avez utilisé l'API JavaScript pour obtenir un code d'autorisation à usage unique à transmettre à votre serveur, effectuez les modifications suivantes:
Remplacez la portée
https://www.googleapis.com/auth/plus.login
parprofile
.Utilisez la méthode
gapi.auth2.grantOfflineAccess()
avec votre fonction de rappel existante, comme dans l'exemple suivant:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-clientid="YOUR_CLIENT_ID" data-redirecturi="postmessage" data-accesstype="offline" data-callback="signInCallback"> </div>
// Google Sign-in (new) auth2 = gapi.auth2.init({ client_id: 'YOUR_CLIENT_ID', scope: 'profile' }); ... auth2.grantOfflineAccess().then(signInCallback);
Si vous avez également besoin d'accéder à l'adresse e-mail de l'utilisateur, ajoutez email
au paramètre de champ d'application.