Migracja z logowania przez Google+

Kroki pozwalające zminimalizować wpływ zmian zakresu na użytkowników

  1. Jeśli Twoja aplikacja wymaga adresu e-mail uwierzytelnionego użytkownika, a wcześniej używano do tego celu profile.emails.read, zamiast tego użyj email.
  2. Aby uzyskać zatwierdzenie domeny profile.emails.read, prześlij prośbę o weryfikację. Zapoznaj się z artykułem Jak przesłać prośbę o weryfikację.
  3. Unieważnij poprzedni token użytkownika do zakresu, który chcesz usunąć, lub całkowicie usuń dostęp do aplikacji. Na przykład token z dostępem profile.emails.read powinien zostać unieważniony. Zalecamy wycofanie zgody, gdy użytkownicy korzystają z aplikacji – wtedy od razu uzyskasz zgodę.
  4. Poproś użytkowników o ponowne wyrażenie zgody na wykorzystanie danych w ramach nowego zakresu, np. email, bez profile.emails.read.
  5. Usuń zakres, który chcesz wycofać z konfiguracji ekranu zgody OAuth interfejsów API Google.
.

Zmiany, które musisz wprowadzić, aby przenieść swoją witrynę z Logowania przez Google+ do Google Sposób logowania się zależy od stosowanego procesu logowania przez Google+. Ogólnie rzecz biorąc, migracja wymaga zaktualizowania przycisku logowania, żądanych zakresów i instrukcji pobierania informacji o profilu z Google.

Gdy aktualizujesz przycisk logowania, nie odnosij się do Google+ ani nie używaj koloru czerwonego. Zgodność ze zaktualizowanymi zasadami wskazówkami dotyczącymi promowania marki.

Większość aplikacji do logowania przez Google+ wymagała użycia określonej kombinacji zakresów: plus.login, plus.me i plus.profile.emails.read. Musisz ponownie zmapować w następujący sposób:

Stary zakres Nowy zakres
plus.login profile
plus.me openid
plus.profile.emails.read email

Wielu użytkowników stosujących Logowanie przez Google+ korzystało z proces tworzenia kodu. Oznacza to, że czy aplikacje na Androida, iOS lub JavaScript uzyskują kod OAuth od Google; klient wysyła ten kod z powrotem na serwer wraz z żądaniem między witrynami. ochrony przed oszustwami. Następnie serwer weryfikuje kod i pobiera odświeżanie, tokeny dostępu umożliwiające pobieranie informacji o profilu użytkownika z interfejsu API people.get.

Obecnie Google zaleca żądanie tokena identyfikatora i wysłanie go z klienta do serwera. Tokeny tożsamości mają zabezpieczenia przed fałszowaniem informacji w witrynach może być weryfikowana statycznie na serwerze, co pozwala uniknąć dodatkowe wywołanie interfejsu API, które pobiera informacje o profilu użytkownika z serwerów Google. Postępuj zgodnie z instrukcje weryfikowania tokenów tożsamości na serwerze.

Jeśli nadal wolisz korzystać z kodu do uzyskiwania informacji w profilu, możesz to zrobić. Gdy serwer ma już token dostępu, uzyskiwanie informacji o profilu użytkownika z punktów końcowych userinfo określonych w logowaniu Dokument opisujący. Interfejs API jest sformatowana inaczej niż odpowiedź profilu Google+, więc musisz zaktualizować analizę do nowego formatu.

Migracja przycisku logowania HTML

Jeśli umieszczasz na swojej stronie przycisk logowania przez Google+ według przypisania zajęć g-signin, wprowadź te zmiany:

  • Jeśli podajesz identyfikator klienta w tagu <meta>, data- lub obiektem parametru, zmień ciąg clientid na client_id jak w tym przykładzie:

    <!-- 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">
    
  • Przypisz klasę g-signin2 do elementu przycisku logowania zamiast do g-signin Zamiast pojedyncze wywołanie zwrotne, tak jak w tym przykładzie:

    <!-- 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>
    
  • Zamiast pojedynczego modułu obsługi wywołania zwrotnego określ moduły obsługi powodzenia i niepowodzenia Jak w tym przykładzie:

    // 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
    }
    
  • Te zmiany zaktualizują zakresy domyślne na profile email openid. Możesz uzyskać podstawowe informacje profilowe użytkownika, takie jak imię i nazwisko, adres e-mail i zdjęcie w następujący sposób:

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

Migracja dynamicznie renderowanego przycisku logowania

Jeśli umieścisz na stronie przycisk Logowanie przez Google+, wywołując gapi.signin.render(), wprowadź te zmiany:

  • Jeśli podajesz identyfikator klienta w tagu <meta>, data- lub obiektem parametru, zmień ciąg clientid na client_id jak w tym przykładzie:

    <!-- 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">
    
  • Renderuj przycisk logowania za pomocą parametru gapi.signin2.render(), a nie gapi.signin.render() jak w tym przykładzie:

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

    // Google Sign-in (new)
    gapi.signin2.render('myButton', additionalParams);
    
  • Zamiast pojedynczego modułu obsługi wywołania zwrotnego określ moduły obsługi powodzenia i niepowodzenia Jak w tym przykładzie:

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

Te zmiany zaktualizują zakresy domyślne na profile email openid. Dostępne opcje uzyskać podstawowe informacje o profilu użytkownika za pomocą metody getBasicProfile().

Migracja procesu logowania inicjowanego przez JavaScript

Jeśli proces logowania został zainicjowany przez Ciebie wywołaniem funkcji gapi.auth.signIn(), gdy użytkownicy kliknij przycisk logowania, wprowadź następujące zmiany:

  • Jeśli podajesz identyfikator klienta w tagu <meta>, data- lub obiektem parametru, zmień ciąg clientid na client_id w tym przykładzie:

    <!-- 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">
    
  • Użyj kodu gapi.auth2.attachClickHandler(), aby rozpocząć proces logowania, gdy naciśniesz przycisk jak w poniższym przykładzie:

    // 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);
    
  • Zamiast pojedynczego modułu obsługi wywołania zwrotnego określ moduły obsługi powodzenia i niepowodzenia Jak w tym przykładzie:

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

Te zmiany zaktualizują zakresy domyślne na profile email openid. Dostępne opcje uzyskać podstawowe informacje profilowe użytkownika, dzwoniąc pod numer getBasicProfile() .

Migracja hybrydowego przepływu po stronie serwera

Jeśli do uzyskania jednorazowego kodu autoryzacji użyto interfejsu JavaScript API które mają zostać przesłane do serwera, wprowadź następujące zmiany:

  • Zmień zakres z https://www.googleapis.com/auth/plus.login na profile

  • Użyj metody gapi.auth2.grantOfflineAccess() z istniejącym wywołaniem zwrotnym Jak w tym przykładzie:

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

Jeśli potrzebujesz też dostępu do adresu e-mail użytkownika, dodaj do parametru zakresu email.