W tym przewodniku omawiamy wpływ wycofania plików cookie innych firm na usługi Google Biblioteka platformy logowania. Tematy obejmują oś czasu i Dalsze kroki dotyczące aktualizacji biblioteki zgodnej wstecznie – instrukcje Przeprowadź ocenę wpływu i sprawdź, czy logowanie użytkowników nadal działa ich działanie zgodnie z oczekiwaniami oraz w razie potrzeby instrukcje aktualizacji aplikacji internetowej. Opcje zarządzania okresem przejściowym i uzyskiwania pomocy. również nie są brane pod uwagę.
Stan biblioteki
Nowe aplikacje internetowe nie będą mogły używać wycofanej platformy logowania Google , natomiast aplikacje korzystające z biblioteki mogą działać do odwołania. O Ostateczna data wycofania (wyłączenia) biblioteki nie została określona. Więcej informacji znajdziesz w sekcji Wycofywanie i wycofywanie wsparcia.
Blokowanie plików cookie innych firm w Piaskownicy prywatności Chrome wpływa na aplikacje internetowe korzystające z biblioteki platformy logowania Google. Aby zachować dotychczasowe działanie aplikacji, bez konieczności używania plików cookie innych firm, czyli aktualizacji kompatybilnej wstecznie doda do tej biblioteki interfejsy API FedCM. Choć większość zmian przebiega bez zakłóceń, aktualizacja wprowadza różnice w prośbach o zgodę użytkownika na wykorzystanie danych oraz w elemencie iframe permissions-policy i Content Security Policy (CSP). Te zmiany może mieć wpływ na Twoją aplikację internetową i wymagać wprowadzenia zmian w kodzie aplikacji oraz witrynie konfiguracji.
W okresie przejściowym opcja konfiguracji określa, czy Podczas logowania się użytkowników używane są interfejsy API FedCM.
Oś czasu
Ostatnia aktualizacja: lipiec 2024 r.
Oto daty i zmiany, które mają wpływ na zachowanie logowania się użytkownika:
- Marzec 2023 r. Wycofanie obsługi platformy logowania przez Google bibliotece.
- Styczeń 2024 r. Chrome blokuje 1% plików cookie innych firm, czyli Logowanie przez Google biblioteka platformy otrzymuje tymczasowy wyjątek od plików cookie innych firm w ramach okresu próbnego wycofywania.
- Rozpoczyna się okres przejściowy (lipiec 2024 r.) oraz biblioteka platformy Google Sign-In
dodaliśmy obsługę interfejsów API FedCM. Domyślnie to Google kontroluje procent
żądań zalogowania się za pomocą FedCM. Aplikacje internetowe mogą
jednoznacznie zastąpić to zachowanie parametrem
use_fedcm
. - Obowiązkowe wdrożenie (data do ustalenia) interfejsów API FedCM przez Google
biblioteka platformy logowania, po której parametr
use_fedcm
jest ignorowany, a wszystkie żądania logowania korzystają z FedCM.
Po przejściu na interfejsy API FedCM biblioteka platformy logowania przez Google przestała być na podstawie blokowania plików cookie innych firm. Aktualizacje dotyczące plików cookie innych firm Blokowanie dostępu, zobacz oś czasu Piaskownicy prywatności Chrome.
Dalsze kroki
Masz do wyboru 3 opcje:
- Przeprowadź ocenę wpływu i w razie potrzeby zaktualizuj swoją aplikację internetową. Ta metoda sprawdza, czy funkcje wymagające zmian w aplikacji internetowej są w użyciu. Instrukcje znajdziesz w następnej sekcji tego przewodnika.
- Przenieś do biblioteki usług tożsamości Google (GIS). Przejście na najnowsze zdecydowanie zalecamy korzystanie z obsługiwanej biblioteki logowania. Aby to zrobić, obserwuj te instrukcje.
- Nic nie rób. Twoja aplikacja internetowa zostanie automatycznie zaktualizowana, gdy Biblioteka Logowania przez Google zostanie przeniesiona do interfejsów API FedCM na potrzeby logowania użytkowników. To jest co najmniej pracochłonne, ale istnieje pewne ryzyko, że użytkownicy nie będą mogli się zalogować. do aplikacji internetowej.
Ocena wpływu
Wykonaj te instrukcje, aby sprawdzić, czy Twoją aplikację internetową można bezproblemowo zaktualizować za pomocą aktualizacji zgodnej wstecznie lub jeśli konieczne są zmiany, aby uniknąć użytkownicy nie mogą się zalogować, gdy biblioteka platformy logowania Google jest w pełni dostępna wdraża interfejsy FedCM API.
Konfiguracja
Interfejsy API przeglądarki i najnowsza wersja biblioteki platformy logowania Google są konieczne jest używanie FedCM podczas logowania użytkownika.
Zanim przejdziesz dalej:
- Zaktualizuj Chrome na komputer do najnowszej wersji. Chrome na Androida wymaga wersji M128 lub nowszej i nie można go przetestować za pomocą starszych wersji.
Otwórz
chrome://flags
i ustaw następujące wartości tych funkcji:- #fedcm-authz – włączony, jeśli witryna używa Content Security Policy.
który blokuje
https://accounts.google.com/gsi/ottoken
. - #tracking-protection-3pcd Włączono
- #third-party-cookie-deprecation-trial Wyłączono
- #tpcd-metadata-grants Wyłączone
- #tpcd-heuristics-grants Wyłączone
i ponownie uruchom Chrome.
- #fedcm-authz – włączony, jeśli witryna używa Content Security Policy.
który blokuje
Podczas inicjowania platformy logowania przez Google ustaw opcję
use_fedcm
natrue
w aplikacji internetowej. Zwykle inicjowanie wygląda tak:gapi.client.init({use_fedcm: true})
lubgapi.auth2.init({use_fedcm: true})
lubgapi.auth2.authorize({use_fedcm: true})
.
Unieważniaj wersje biblioteki platformy logowania Google zapisane w pamięci podręcznej. Zwykle ten krok nie jest potrzebny, ponieważ najnowsza wersja biblioteki pobrane bezpośrednio do przeglądarki przez dodanie elementów
api.js
,client.js
lubplatform.js
w tagu<script src>
(żądanie może używać dowolnej z tych nazwy pakietów dla biblioteki).Potwierdź ustawienia protokołu OAuth dla identyfikatora klienta OAuth:
- Otwórz stronę Dane logowania aplikacji Google API Console
Sprawdź, czy identyfikator URI Twojej witryny znajduje się w Autoryzowane źródła JavaScript. Identyfikator URI zawiera schemat i tylko w pełni kwalifikowana nazwa hosta. Na przykład:
https://www.example.com
.Opcjonalnie dane logowania mogą być zwracane przez przekierowanie do punktu końcowego na serwerze, a nie za pomocą wywołania zwrotnego JavaScript. W takim przypadku Sprawdź, czy identyfikatory URI przekierowania są uwzględnione w sekcji Autoryzowane identyfikatory URI przekierowania. Identyfikatory URI przekierowania obejmują schemat, w pełni kwalifikowaną nazwę hosta i ścieżkę i musi być zgodny z regułami weryfikacji identyfikatora URI przekierowania. Przykład:
https://www.example.com/auth-receiver
Testowanie
Po wykonaniu instrukcji opisanych w konfiguracji:
- Zamknij wszystkie okna incognito w Chrome i otwórz nowy tryb incognito okno. Spowoduje to usunięcie całej zawartości pamięci podręcznej i plików cookie.
- Wczytaj stronę logowania użytkownika i spróbuj się zalogować.
Postępuj zgodnie z instrukcjami podanymi w tych sekcjach tego przewodnika, aby określić, i rozwiąż znane problemy:
Poszukaj błędów lub ostrzeżeń w konsoli związanych z Logowaniem przez Google bibliotece.
Powtarzaj ten proces, dopóki nie wystąpią błędy i będziesz mieć możliwość zalogowania się. Aby potwierdzić pomyślne logowanie, potwierdź
BasicProfile.getEmail()
zwraca Twój adres e-mail, aGoogleUser.isSignedIn()
jestTrue
.
Znajdowanie żądania dotyczącego biblioteki Logowania przez Google
Sprawdź, czy zmiany zasad permissions-policy i Content Security Policy zostały zmienione konieczne jest sprawdzenie żądania dotyczącego biblioteki platformy logowania Google. Aby to zrobić, znajdź prośbę, używając nazwy i pochodzenia biblioteki:
- W Chrome otwórz panel Sieć w Narzędziach deweloperskich i załaduj ponownie stronę.
- Przy użyciu wartości w kolumnach Domena i Nazwa znajdź bibliotekę.
żądanie:
- Domena to
apis.google.com
i - Nazwa to
api.js
,client.js
lubplatform.js
. Konkretny Wartość parametru Name zależy od pakietu bibliotek żądanego przez dokument.
- Domena to
Na przykład zastosuj filtr apis.google.com
w kolumnie Domena i
platform.js
w kolumnie Nazwa.
Sprawdzanie zasad uprawnień dotyczących elementów iframe
Twoja witryna może używać biblioteki platformy logowania Google w obrębie zasobów z innych domen. iframe. Jeśli tak, konieczna jest aktualizacja.
Po wykonaniu czynności opisanych w artykule Zlokalizuj prośbę dotyczącą biblioteki Logowania przez Google.
instrukcje, wybierz żądanie biblioteki Logowania przez Google w Narzędziach deweloperskich
Network (Sieć) i znajdź nagłówek Sec-Fetch-Site
w
Request Headers (Nagłówki żądań) na karcie Headers (Nagłówki). Jeśli wartość nagłówka
to:
same-site
lubsame-origin
, nie mają zastosowania zasady dotyczące innych domen i nie niezbędne są zmiany.- Jeśli używany jest element iframe, konieczne może być wprowadzenie zmian w elemencie
cross-origin
.
Aby sprawdzić, czy element iframe istnieje:
- W Narzędziach deweloperskich w Chrome wybierz panel Elementy.
- Aby znaleźć element iframe w dokumencie, naciśnij klawisze Ctrl + F.
Po znalezieniu elementu iframe przejrzyj dokument, aby sprawdzić, czy nie występują wywołania gapi.auth2
funkcji lub script src
, które wczytują bibliotekę logowania Google.
wewnątrz elementu iframe. W takim przypadku:
- Dodaj zasadę uprawnień
allow="identity-credentials-get"
do nadrzędny element iframe.
Powtórz ten proces dla każdego elementu iframe w dokumencie. Elementy iframe mogą być zagnieżdżone, dodaj dyrektywę allow do wszystkich nadrzędnych elementów iframe.
Sprawdź Content Security Policy
Jeśli Twoja witryna używa Content Security Policy, może być konieczne zaktualizowanie CSP do zezwala na korzystanie z biblioteki Logowania przez Google.
Po wykonaniu czynności opisanych w artykule Zlokalizuj prośbę dotyczącą biblioteki Logowania przez Google.
instrukcje, wybierz żądanie biblioteki Logowania przez Google w Narzędziach deweloperskich
Network (Sieć) i znajdź nagłówek Content-Security-Policy
w
Nagłówki odpowiedzi na karcie Nagłówki.
Jeśli nagłówek nie został znaleziony, nie są wymagane żadne zmiany. W przeciwnym razie sprawdź, czy któryś z te dyrektywy CSP są zdefiniowane w nagłówku CSP i aktualizowane przez:
Dodaję:
https://apis.google.com/js/
,https://accounts.google.com/gsi/
, ihttps://acounts.google.com/o/fedcm/
do dowolnegoconnect-src
,default-src
lubframe-src
.Dodaję do listy
https://apis.google.com/js/bundle-name.js
do:script-src
. Zastąpbundle-name.js
wartościąapi.js
,client.js
lubplatform.js
zgodnie z grupą żądań dokumentów w bibliotece.
Sprawdzanie, czy nie zmieniły się prośby użytkowników
Występują pewne różnice w zachowaniu użytkowników – FedCM dodaje okno modalne wyświetlanych przez przeglądarkę i aktualizuje wymagania dotyczące aktywacji użytkownika.
Okno modalne
Sprawdź układ witryny, by upewnić się, że zawarte w niej treści bezpiecznie nałożone i tymczasowo ukryte w oknie modalnym przeglądarki. Jeśli Nie jest to konieczne, być może trzeba będzie dostosować układ lub położenie niektórych elementów Twojej witryny.
Aktywacja użytkownika
FedCM podaje zaktualizowane wymagania dotyczące aktywacji użytkowników. Naciśnięcie przycisku lub kliknięcie linku to przykłady gestów użytkownika, które umożliwiają korzystanie ze źródeł zewnętrznych wysyłania żądań sieciowych i przechowywania danych. W FedCM przeglądarka prosi o podanie zgody użytkownika, gdy:
- użytkownik po raz pierwszy loguje się w aplikacji internetowej przy użyciu nowej instancji przeglądarki;
- Funkcja
GoogleAuth.signIn
jest wywoływana.
Obecnie, jeśli użytkownik wcześniej logował się do Twojej witryny, możesz uzyskać
dane logowania użytkownika podczas inicjowania biblioteki Logowania przez Google.
za pomocą gapi.auth2.init
, bez dalszych interakcji z użytkownikiem.
Ze względu na wycofanie plików cookie innych firm nie jest to już możliwe, chyba że użytkownik co najmniej raz zalogował się przez FedCM.
Jeśli wyrazisz zgodę w FedCM i wywołasz funkcję GoogleAuth.signIn
, następnym razem tak samo
użytkownik odwiedza Twoją witrynę, gapi.auth2.init
może uzyskać dane logowania użytkownika
informacji podczas inicjowania bez interakcji użytkownika.
Częste zastosowania
Dokumentacja dla deweloperów dotycząca biblioteki Logowania przez Google zawiera przewodniki i kod przykłady do typowych przypadków użycia. W tej sekcji omawiamy wpływ usługi FedCM na zachowanie użytkownika.
Integracja Logowania przez Google z aplikacją internetową
W tej demo element
<div>
i klasa renderują przycisk, w przypadku zalogowanych użytkowników zdarzenieonload
na stronie zwróci użytkownika dane logowania. Do zalogowania się i utworzenia nowego .Inicjowanie biblioteki jest wykonywane przez klasę
g-signin2
, która wywołujegapi.load
igapi.auth2.init
.Gest użytkownika, zdarzenie
onclick
elementu<div>
, wywołanieauth2.signIn
podczas logowania lubauth2.signOut
przy wylogowaniu.Tworzenie niestandardowego przycisku logowania przez Google
W wersji demonstracyjnej 1 atrybuty niestandardowe służą do sterowania wyglądem przycisku logowania, a w przypadku już zalogowanych użytkowników – zdarzenie
onload
strona zwraca dane logowania użytkownika. Do zalogowania się wymagana jest interakcja użytkownika rozpocząć nową sesję.Inicjowanie biblioteki odbywa się przez zdarzenie
onload
dlaplatform.js
, a przycisk wyświetlagapi.signin2.render
.Gest użytkownika naciskający przycisk logowania wywołuje połączenie
auth2.signIn
.W wersji demonstracyjnej 2 element
<div>
, style CSS i grafika niestandardowa służy do kontrolowania wyglądu przycisku logowania. Interakcja użytkownika to zalogować się i rozpocząć nową sesję.Inicjowanie biblioteki odbywa się podczas wczytywania dokumentu za pomocą funkcji startowej. który wywołuje
gapi.load
,gapi.auth2.init
igapi.auth2.attachClickHandler
Gest użytkownika, zdarzenie
onclick
elementu<div>
, wywołanieauth2.signIn
za pomocą urządzeniaauth2.attachClickHandler
podczas logowania lubauth2.signOut
na wyloguj się.Monitorowanie stanu sesji użytkownika
W tej demo do logowania i wylogowywania się użytkownika służy naciśnięcie przycisku. Do zalogowania się i rozpoczęcia nowej sesji wymagana jest interakcja użytkownika.
Biblioteka jest inicjowana przez bezpośrednie wywołanie metody
gapi.load
,gapi.auth2.init
, a potemgapi.auth2.attachClickHandler()
Plikplatform.js
został wczytany za pomocą funkcjiscript src
.Gest użytkownika, zdarzenie
onclick
elementu<div>
, wywołanieauth2.signIn
za pomocą urządzeniaauth2.attachClickHandler
podczas logowania lubauth2.signOut
na wyloguj się.Prośba o dodatkowe uprawnienia
W tej demo do wysłania żądania dodatkowego protokołu OAuth 2.0 należy nacisnąć przycisk aby uzyskać nowy token dostępu, a w przypadku już zalogowanych użytkowników zdarzenie
onload
strona zwraca dane logowania użytkownika. Interakcja użytkownika jest wymagana zalogować się i rozpocząć nową sesję.Inicjowanie biblioteki jest wykonywane przez zdarzenie
onload
dlaplatform.js
przy użyciu wywołaniagapi.signin2.render
.Gest użytkownika – kliknięcie elementu
<button>
powoduje wysłanie żądania dotyczącego dodatkowe zakresy OAuth 2.0 używającegoogleUser.grant
lubauth2.signOut
przy wylogowaniu.Integracja logowania przez Google z użyciem detektorów
W tej demo dla zalogowanych użytkowników zdarzenie
onload
pojawi się na stronie zwraca dane logowania użytkownika. Do zalogowania się wymagana jest interakcja użytkownika rozpocząć nową sesję.Inicjowanie biblioteki odbywa się podczas wczytywania dokumentu za pomocą funkcji startowej. który wywołuje
gapi.load
,gapi.auth2.init
igapi.auth2.attachClickHandler
Dalej,auth2.isSignedIn.listen
iauth2.currentUser.listen
służy do konfigurowania powiadomień o zmianach w stan sesji. Na koniec wywoływana jest funkcjaauth2.SignIn
, która zwraca dane logowania zalogowanych użytkowników.Gest użytkownika, zdarzenie
onclick
elementu<div>
, wywołanieauth2.signIn
za pomocą urządzeniaauth2.attachClickHandler
podczas logowania lubauth2.signOut
na wyloguj się.Logowanie przez Google w aplikacjach po stronie serwera
W tej demo gest użytkownika jest używany do żądania kodu autoryzacji OAuth 2.0 a wywołanie zwrotne JS wysyła odpowiedź do backendu serwera do weryfikacji.
Inicjowanie biblioteki jest wykonywane przy użyciu zdarzenia
onload
dlaplatform.js
która wykorzystuje funkcję startową do wywoływaniagapi.load
igapi.auth2.init
Gest użytkownika – kliknięcie elementu
<button>
powoduje wysłanie żądania dotyczącego kod autoryzacji, wywołując metodęauth2.grantOfflineAccess
.Logowanie jednokrotne na wielu platformach
FedCM wymaga zgody w przypadku każdej instancji przeglądarki, nawet jeśli użytkownicy Androida już się zalogowało, wymagana jest jednorazowa zgoda.
Zarządzanie okresem przejściowym
W okresie przejściowym pewien odsetek logowań użytkowników może korzystać z FedCM, dokładne wartości procentowe mogą być inne i mogą się z czasem zmienić. Domyślnie elementy sterujące Google liczby żądań logowania korzysta z FedCM, ale możesz zdecydować, czy chcesz zaakceptować i korzystanie z FedCM w okresie przejściowym. Na koniec okresu przejściowego Usługa FedCM staje się obowiązkowa i służy do obsługi wszystkich próśb o zalogowanie.
Jeśli wyrazisz zgodę, użytkownik musi przejść przez proces logowania w FedCM.
rezygnacja powoduje, że użytkownicy muszą przejść przez istniejący proces logowania. Działanie to
kontrolowane za pomocą parametru use_fedcm
.
Zaakceptuj
Warto określić, czy wszystkie, czy tylko niektóre próby zalogowania się na konto
używają interfejsów API FedCM. Aby to zrobić, podczas inicjowania ustaw use_fedcm
na true
z biblioteki platformy. W tym przypadku żądanie logowania użytkownika używa interfejsów API FedCM.
Rezygnacja
W okresie przejściowym określony procent użytkowników próbuje zalogować się w Twojej witrynie.
domyślnie używa interfejsów FedCM API. Jeśli potrzebujesz więcej czasu na wprowadzenie zmian
możesz tymczasowo zrezygnować z interfejsów API FedCM. W tym celu ustaw
Z use_fedcm
na false
podczas inicjowania biblioteki platformy. Logowanie użytkownika
w tym przypadku nie używa interfejsów API FedCM.
Po obowiązkowym wdrożeniu wszystkie ustawienia use_fedcm
są ignorowane przez
Biblioteka platformy logowania Google.
Pomoc
Szukaj w StackOverflow i zadawaj pytania za pomocą tagu google-signin.