Von Google+ Log-in migrieren

Schritte zum Minimieren der Auswirkungen von Änderungen am Umfang auf Nutzer

  1. Wenn Ihre Anwendung die E-Mail-Adresse eines authentifizierten Nutzers erfordert und Sie zuvor profile.emails.read zu diesem Zweck verwendet haben, verwenden Sie stattdessen email.
  2. Holen Sie die Genehmigung für profile.emails.read mit einer genehmigten Überprüfungsanfrage ein. Weitere Informationen finden Sie unter Wie reiche ich die Überprüfung ein?
  3. Widerrufen Sie das bisherige Nutzertoken für den Bereich, der entfernt werden soll, oder entfernen Sie den Zugriff auf die Anwendung vollständig. Beispielsweise sollte ein Token mit profile.emails.read-Zugriff widerrufen werden. Wir empfehlen, den Widerruf vorzunehmen, während sich die Nutzer in Ihrer App befinden, damit Sie die Einwilligung der Nutzer sofort einholen können.
  4. Fordern Sie Ihre Nutzer auf, dem neuen Umfang wie email ohne profile.emails.read noch einmal zuzustimmen.
  5. Entfernen Sie den Bereich, der aus der Konfiguration des OAuth-Zustimmungsbildschirms für Google APIs entfernt werden soll.

Welche Änderungen Sie für die Migration Ihrer Website von Google+ Log-in zu Google Log-in vornehmen müssen, hängt davon ab, welchen Google+ Log-in Sie verwenden. Im Allgemeinen müssen Sie für die Migration Ihre Anmeldeschaltfläche, die angeforderten Bereiche und eine Anleitung zum Abrufen von Profilinformationen von Google aktualisieren.

Beziehen Sie sich beim Aktualisieren Ihrer Anmeldeschaltfläche nicht auf G+ und verwenden Sie nicht die Farbe Rot. Unsere aktualisierten Branding-Richtlinien müssen eingehalten werden.

Die meisten G+ Log-in-Anwendungen haben eine Kombination der Bereiche plus.login, plus.me und plus.profile.emails.read angefordert. Dazu müssen Sie Ihre Bereiche neu zuordnen:

Alter Bereich Neuer Bereich
plus.login profile
plus.me openid
plus.profile.emails.read email

Viele Nutzer von Google+ Log-in haben den Codeablauf verwendet. Das bedeutet, dass die Android-, iOS- oder JavaScript-Apps einen OAuth-Code von Google erhalten und der Client diesen Code zusammen mit dem websiteübergreifenden Fälschungsschutz an den Server zurücksendet. Der Server validiert dann den Code und ruft Aktualisierungs- und Zugriffstokens ab, um Nutzerprofilinformationen aus der people.get API abzurufen.

Google empfiehlt jetzt, ein ID-Token anzufordern und dieses von Ihrem Client an Ihren Server zu senden. ID-Tokens haben einen integrierten Fälschungsschutz und können auch statisch auf Ihrem Server verifiziert werden. Dadurch wird ein zusätzlicher API-Aufruf zum Abrufen von Nutzerprofilinformationen von den Google-Servern vermieden. Folgen Sie der Anleitung zum Validieren von ID-Tokens auf Ihrem Server.

Wenn Sie den Codeablauf dennoch verwenden möchten, um Profilinformationen abzurufen, können Sie das tun. Sobald Ihr Server ein Zugriffstoken hat, müssen Sie von den userinfo-Endpunkten, die in unserem Discovery-Dokument zur Anmeldung angegeben sind, Nutzerprofilinformationen abrufen. Die API-Antwort ist anders formatiert als die Antwort des Google+ Profils. Deshalb müssen Sie das Parsing auf das neue Format aktualisieren.

HTML-Anmeldeschaltfläche migrieren

Wenn du eine Google+ Log-in-Schaltfläche auf deiner Seite eingefügt hast, indem du einem Element den Kurs g-signin zugewiesen hast, nimm folgende Änderungen vor:

  • Wenn Sie die Client-ID entweder in einem <meta>-Tag, einem data--Attribut oder einem Parameterobjekt angeben, ändern Sie den String clientid wie im folgenden Beispiel zu client_id:

    <!-- 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">
    
  • Weisen Sie dem Element der Anmeldeschaltfläche die Klasse g-signin2 statt g-signin zu. Gib außerdem separate Erfolgs- und Fehler-Callbacks anstelle eines einzelnen Callbacks an, wie im folgenden Beispiel gezeigt:

    <!-- 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>
    
  • Definieren Sie Erfolgs- und Fehler-Handler anstelle eines einzelnen Callback-Handlers wie im folgenden Beispiel:

    // 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
    }
    
  • Durch diese Änderungen werden Ihre Standardbereiche auf profile email openid aktualisiert. Die grundlegenden Profilinformationen des Nutzers wie Name, E-Mail-Adresse und Foto-URL können Sie so abrufen:

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      let profile = googleUser.getBasicProfile();
      let fullName = profile.getName();
      let email = profile.getEmail();
      let imageUrl = profile.getImageUrl();
    }
    

Dynamisch gerenderte Anmeldeschaltfläche migrieren

Wenn du durch Aufrufen von gapi.signin.render() eine Google+ Log-in-Schaltfläche auf deiner Seite eingefügt hast, nimm die folgenden Änderungen vor:

  • Wenn Sie die Client-ID entweder in einem <meta>-Tag, einem data--Attribut oder einem Parameterobjekt angeben, ändern Sie den String clientid wie im folgenden Beispiel zu client_id:

    <!-- 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">
    
  • Rendere die Anmeldeschaltfläche wie im folgenden Beispiel mit gapi.signin2.render() statt mit gapi.signin.render():

    // Google+ Sign-in (old)
    gapi.signin.render('myButton', additionalParams);
    

    // Google Sign-in (new)
    gapi.signin2.render('myButton', additionalParams);
    
  • Definieren Sie Erfolgs- und Fehler-Handler anstelle eines einzelnen Callback-Handlers wie im folgenden Beispiel:

    // 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
    }
    

Durch diese Änderungen werden Ihre Standardbereiche auf profile email openid aktualisiert. Die grundlegenden Profilinformationen des Nutzers können Sie mit der Methode getBasicProfile() abrufen.

Über JavaScript initiierten Anmeldevorgang migrieren

Wenn du den Anmeldevorgang mit einem Aufruf von gapi.auth.signIn() gestartet hast, als Nutzer auf die Anmeldeschaltfläche klicken, nimm die folgenden Änderungen vor:

  • Wenn Sie die Client-ID in einem <meta>-Tag, einem data--Attribut oder einem Parameterobjekt angeben, ändern Sie den String clientid in client_id, wie im folgenden Beispiel gezeigt:

    <!-- 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">
    
  • Verwenden Sie gapi.auth2.attachClickHandler(), um den Anmeldevorgang zu starten, wenn eine Schaltfläche gedrückt wird. Beispiel:

    // 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);
    
  • Definieren Sie Erfolgs- und Fehler-Handler anstelle eines einzelnen Callback-Handlers wie im folgenden Beispiel:

    // 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
    }
    

Durch diese Änderungen werden Ihre Standardbereiche auf profile email openid aktualisiert. Die grundlegenden Profilinformationen des Nutzers können Sie durch einen Aufruf der Methode getBasicProfile() abrufen.

Serverseitigen hybriden Ablauf migrieren

Wenn Sie die JavaScript API verwendet haben, um einen einmaligen Autorisierungscode abzurufen, den Sie an Ihren Server übergeben müssen, nehmen Sie die folgenden Änderungen vor:

  • Ändern Sie den Bereich von https://www.googleapis.com/auth/plus.login in profile.

  • Verwenden Sie die Methode gapi.auth2.grantOfflineAccess() mit Ihrer vorhandenen Callback-Funktion, wie im folgenden Beispiel gezeigt:

    <!-- 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);
    

Wenn Sie auch Zugriff auf die E-Mail-Adresse des Nutzers benötigen, fügen Sie dem Parameter „Scope“ (Umfang) email hinzu.