Kroki pozwalające zminimalizować wpływ zmian zakresu na użytkowników
- 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żyjemail
. - 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ę. - 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ę. - Poproś użytkowników o ponowne wyrażenie zgody na wykorzystanie danych w ramach nowego zakresu, np.
email
, bezprofile.emails.read
. - 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 oszustwem w innych 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, wykonaj
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ągclientid
naclient_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 dog-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ągclientid
naclient_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 niegapi.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ągclientid
naclient_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
naprofile
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
.