É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
à l'aide d'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 les utilisateurs accèdent à votre application afin d'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 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 la couleur rouge. Respectez nos consignes relatives à la marque mises à jour.
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 de votre client à votre serveur. Les jetons d'ID intègrent des protections contre la falsification intersites. Ils 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 sur le profil utilisateur à partir des points de terminaison userinfo
spécifiés dans notre document de découverte sur la 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, 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()
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 remplacent vos champs d'application par défaut par profile email openid
. Vous pouvez obtenir les informations de base du profil utilisateur avec 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 entraînent la mise à jour des champs d'application par défaut sur 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.