Effectuer une migration depuis Google+ Sign-In

<ph type="x-smartling-placeholder">

Mesures permettant de minimiser l'impact des changements de portée sur les utilisateurs

  1. 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ôt email.
  2. Obtenez l'approbation de profile.emails.read à l'aide d'une demande de validation approuvée. Consultez Comment envoyer une demande de validation ?
  3. 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.
  4. Invitez vos utilisateurs à donner de nouveau leur consentement avec le nouveau champ d'application, par exemple email, sans profile.emails.read.
  5. Supprimez le champ d'application à supprimer de la configuration de l'écran de consentement OAuth de vos API Google.
<ph type="x-smartling-placeholder">

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>, un data- ou un objet "paramètres", remplacez la chaîne clientid par client_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 de g-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>, un data- ou un objet "paramètres", remplacez la chaîne clientid par client_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 de gapi.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>, un data- ou un objet "paramètres", remplacez la chaîne clientid par client_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 par profile

  • 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.