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.
Modifications à apporter pour migrer votre site de Google+ Sign-In vers Google La procédure de connexion dépend du processus Google+ Sign-In que vous utilisez. En général, la migration nécessite que vous mettiez à jour votre bouton de connexion, les champs d'application demandés et les instructions pour découvrir comment récupérer les informations de votre profil sur Google.
Lorsque vous mettez à jour votre bouton de connexion, ne faites pas référence à G+ et n'utilisez pas le rouge. Respectez 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 responsables de la mise en œuvre de Google+ Sign-In ont utilisé la
flux de code. Cela signifie
que les applications Android, iOS ou JavaScript obtiennent un code OAuth de Google ;
le client renvoie ce code au serveur, avec la requête intersite
contre la falsification. Le serveur valide ensuite le code et obtient une actualisation et
des jetons d'accès permettant d'extraire les informations de profil utilisateur de l'API people.get
.
Google vous recommande à présent de demander un jeton d'ID et de l'envoyer depuis votre client à votre serveur. Les jetons d'ID sont protégés contre la falsification intersites et peut également être vérifié de manière statique sur votre serveur, ce qui évite un appel d'API supplémentaire pour obtenir les informations de profil utilisateur depuis les serveurs de Google. Suivez le les instructions pour valider les jetons d'identification sur votre serveur.
Si vous préférez quand même 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 les informations d'un profil utilisateur
depuis les points de terminaison userinfo
spécifiés dans notre
Document de découverte. L'API
n'est pas formatée de la même façon que la réponse associée au profil Google+.
vous devez mettre à jour votre analyse
pour adopter le nouveau format.
Migrer un bouton de connexion HTML
Si vous avez inclus un bouton Google+ Sign-In sur votre page par le biais d'un devoir
g-signin
à un élément, apportez les modifications suivantes:
Lorsque vous spécifiez votre ID client, dans une balise
<meta>
, undata-
ou un objet "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'une 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
. Vous pouvez obtenir les informations de base du profil de l'utilisateur, telles que son nom, son adresse e-mail et sa photo. URL de l'image, 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>
, undata-
ou un objet "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">
Afficher 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
Obtenez les informations de base du profil de l'utilisateur avec la méthode getBasicProfile()
.
Migrer un flux de connexion initié par JavaScript
Si vous avez lancé le processus de connexion en appelant gapi.auth.signIn()
lorsque les utilisateurs
cliquez sur le bouton de connexion, apportez les modifications suivantes:
Lorsque vous spécifiez votre ID client, dans une balise
<meta>
, undata-
ou un objet "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">
Utiliser
gapi.auth2.attachClickHandler()
pour démarrer le flux de connexion lorsqu'un bouton est appuyée, 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 de l'utilisateur en appelant la getBasicProfile()
.
Migrer un flux hybride côté serveur
Si vous avez utilisé l'API JavaScript pour obtenir un code d'autorisation à usage unique à transmettre à votre serveur, apportez les modifications suivantes:
Remplacez le champ d'application
https://www.googleapis.com/auth/plus.login
parprofile
Utiliser la méthode
gapi.auth2.grantOfflineAccess()
avec votre rappel existant , 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.