Logowanie przez Google przez interfejsy API FedCM

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:

  1. 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.
  2. 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.
  3. 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.

  • Podczas inicjowania platformy logowania przez Google ustaw opcję use_fedcm na true w aplikacji internetowej. Zwykle inicjowanie wygląda tak:

    • gapi.client.init({use_fedcm: true}) lub
    • gapi.auth2.init({use_fedcm: true}) lub
    • gapi.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 lub platform.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:

    1. Otwórz stronę Dane logowania aplikacji Google API Console
    2. 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.

    3. 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:

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 lub platform.js. Konkretny Wartość parametru Name zależy od pakietu bibliotek żądanego przez dokument.

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-sitelub same-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:

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/, i https://acounts.google.com/o/fedcm/ do dowolnego connect-src, default-src lub frame-src.

  • Dodaję do listy https://apis.google.com/js/bundle-name.js do: script-src . Zastąp bundle-name.js wartością api.js, client.js lub platform.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.

Ilustracja przedstawiająca okno modalne FedCM

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 zdarzenie onload 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łuje gapi.load i gapi.auth2.init.

    Gest użytkownika, zdarzenie onclick elementu <div>, wywołanie auth2.signIn podczas logowania lub auth2.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 dla platform.js, a przycisk wyświetla gapi.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 i gapi.auth2.attachClickHandler

    Gest użytkownika, zdarzenie onclick elementu <div>, wywołanie auth2.signIn za pomocą urządzenia auth2.attachClickHandler podczas logowania lub auth2.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 potem gapi.auth2.attachClickHandler() Plik platform.js został wczytany za pomocą funkcji script src.

    Gest użytkownika, zdarzenie onclick elementu <div>, wywołanie auth2.signIn za pomocą urządzenia auth2.attachClickHandler podczas logowania lub auth2.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 dla platform.js przy użyciu wywołania gapi.signin2.render.

    Gest użytkownika – kliknięcie elementu <button> powoduje wysłanie żądania dotyczącego dodatkowe zakresy OAuth 2.0 używające googleUser.grant lub auth2.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 i gapi.auth2.attachClickHandler Dalej, auth2.isSignedIn.listen i auth2.currentUser.listen służy do konfigurowania powiadomień o zmianach w stan sesji. Na koniec wywoływana jest funkcja auth2.SignIn, która zwraca dane logowania zalogowanych użytkowników.

    Gest użytkownika, zdarzenie onclick elementu <div>, wywołanie auth2.signIn za pomocą urządzenia auth2.attachClickHandler podczas logowania lub auth2.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 dla platform.js która wykorzystuje funkcję startową do wywoływania gapi.load i gapi.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.