Mesures permettant de minimiser l'impact des changements de portée 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
à l'aide d'une demande de validation approuvée. Consultez Comment envoyer une demande de validation ? - Révoquez le jeton utilisateur précédent au niveau du champ d'application à supprimer ou supprimez complètement l'accès à l'application. Par exemple, un jeton avec l'accès
profile.emails.read
doit être révoqué. Nous vous recommandons d'appliquer la révocation lorsque les utilisateurs accèdent à votre application afin d'obtenir leur consentement immédiatement. - Invitez vos utilisateurs à donner de nouveau leur consentement avec le nouveau champ d'application, par exemple
email
, sansprofile.emails.read
. - Supprimez le champ d'application à supprimer de la configuration de l'écran de consentement OAuth de vos API Google.
Les modifications à apporter pour migrer votre site de Google+ Sign-In vers Google Sign-In dépendent du flux Google+ Sign-In que vous utilisez. En règle générale, la migration nécessite la mise à jour de votre bouton de connexion, des champs d'application demandés et des instructions sur la manière de 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 le rouge. respecter nos nouvelles consignes relatives à la marque.
La plupart des applications G+ Sign-In demandaient une combinaison des champs d'application : 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 développeurs de Google+ Sign-In ont utilisé le flux de code. Cela signifie que les applications Android, iOS ou JavaScript obtiennent un code OAuth de Google, que le client renvoie au serveur, ainsi que la 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 du profil utilisateur de l'API people.get
.
Google vous recommande désormais de demander un jeton d'ID et de l'envoyer depuis votre client à votre serveur. Les jetons d'identification sont dotés de protections intégrées contre la contrefaçon 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 de profil utilisateur auprès 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 de profil utilisateur à partir des points de terminaison userinfo
spécifiés dans notre document de découverte de connexion. Le format de la réponse de l'API est différent de celui de la réponse du profil Google+. Vous devez donc mettre à jour votre analyse pour qu'elle respecte 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, apportez les modifications suivantes:
Lorsque vous spécifiez votre ID client, 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 entraînent la mise à jour des champs d'application par défaut sur
profile email openid
. Pour obtenir les informations de base du profil de l'utilisateur, telles que son nom, son adresse e-mail et l'URL de sa photo, procédez 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é de manière dynamique
Si vous avez inclus un bouton Google+ Sign-In sur votre page en appelant gapi.signin.render()
, apportez les modifications suivantes:
Lorsque vous spécifiez votre ID client, 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()
au lieu degapi.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 entraînent la mise à jour des champs d'application par défaut sur profile email openid
. Vous pouvez obtenir les informations de base du profil utilisateur avec la méthode getBasicProfile()
.
Migrer un flux de connexion initié 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 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 utilisateur appuie sur un bouton, 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 entraînent la mise à jour des champs d'application par défaut sur profile email openid
. Vous pouvez obtenir les informations de base du profil utilisateur en appelant la méthode getBasicProfile()
.
Migrer un flux hybride côté serveur
Si vous avez utilisé l'API JavaScript pour obtenir un code d'autorisation unique à transmettre à votre serveur, apportez les modifications suivantes:
Remplacez le champ d'application
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 portée.