Z tego przewodnika dowiesz się, jakie zmiany w aplikacji internetowej wprowadził interfejs Federated Credentials Management API (FedCM).
Gdy włączona jest funkcja FedCM, przeglądarka wyświetla użytkownikom odpowiednie prompty i nie używa plików cookie innych firm.
Omówienie
FedCM umożliwia tworzenie bardziej prywatnych procesów logowania bez konieczności korzystania z plików cookie innych firm. Przeglądarka kontroluje ustawienia użytkownika, wyświetla prompty i kontaktuje się z dostawcą tożsamości, takim jak Google, dopiero po uzyskaniu wyraźnej zgody użytkownika.
W przypadku większości witryn migracja przebiega płynnie dzięki aktualizacjom biblioteki JavaScript Google Identity Services, które zapewniają zgodność wsteczną.
Aktualizacje dotyczące funkcji automatycznego logowania
W sierpniu 2023 r. udostępniliśmy wersję beta usługi Federated Credential Management (FedCM) w Google Identity Services. Wielu deweloperów przetestowało interfejs API i przesłało cenne opinie.
Jeden z głosów, które słyszeliśmy od deweloperów, dotyczy wymagań dotyczących gestów użytkownika w ramach procesu automatycznego logowania w FedCM. Aby zwiększyć prywatność, Chrome wymaga od użytkowników ponownego potwierdzenia, że chcą zalogować się na stronie internetowej przy użyciu konta Google w każdej instancji Chrome, nawet jeśli użytkownik zatwierdził witrynę przed wdrożeniem FedCM. Jednorazowe ponowne potwierdzenie odbywa się przez jednokrotne kliknięcie promptu „Jedno kliknięcie” lub przesłanie za pomocą FedCM, aby pokazać, że użytkownik chce się zalogować. Ta zmiana może początkowo zakłócać automatyczne logowanie i wpływać na współczynniki konwersji w przypadku niektórych witryn.
Niedawno w M121 wprowadziliśmy zmianę w interfejsie logowania automatycznego FedCM. Ponowne potwierdzenie jest wymagane tylko wtedy, gdy pliki cookie innych firm są ograniczone. Oznacza to, że:
Automatyczne logowanie w FedCM nie wymaga ponownego potwierdzenia w przypadku powracających użytkowników. Jeśli użytkownicy potwierdzą ponownie za pomocą interfejsu FedCM, to ponowne potwierdzenie będzie liczone jako spełnienie wymogu dotyczącego działania użytkownika w erze po 3 PCD.
Automatyczne logowanie w ramach FedCM będzie sprawdzać stan ponownego potwierdzenia, gdy pliki cookie innych firm są obecnie ręcznie ograniczane przez użytkowników lub domyślnie w przyszłej wersji Chrome.
W związku z tą zmianą zalecamy wszystkim deweloperom korzystającym z automatycznego logowania jak najszybciej przejść na FedCM, aby ograniczyć zakłócenia w procentowym wskaźniku konwersji automatycznego logowania.
W przypadku automatycznego procesu logowania kod JavaScript GIS nie uruchamia FedCM w starszej wersji Chrome (wcześniejszej niż M121), nawet jeśli Twoja witryna zdecyduje się na korzystanie z FedCM.
Różnice w ścieżce użytkownika
Funkcje obsługiwane przez One Tap są podobne w przypadku korzystania z FedCM i bez FedCM, z niewielkimi różnicami.
Nowy użytkownik z jedną sesją
W przypadku FedCM usługa One Tap wyświetla nazwę domeny najwyższego poziomu zamiast nazwy aplikacji.
Korzystanie z FedCM | Bez FedCM |
---|---|
![]() ![]() |
![]() ![]() |
Powracający użytkownik, który korzysta z jednej sesji (z wyłączonym automatycznym logowaniem)
W przypadku FedCM usługa One Tap wyświetla nazwę domeny najwyższego poziomu zamiast nazwy aplikacji.
Korzystanie z FedCM | Bez FedCM |
---|---|
![]() ![]() |
![]() ![]() |
Powracający użytkownik, który korzysta z jednej sesji (z włączonym automatycznym logowaniem)
Dzięki FedCM użytkownicy mogą w ciągu 5 sekund anulować automatyczne logowanie, klikając X, zamiast klikać przycisk Anuluj.
Korzystanie z FedCM | Bez FedCM |
---|---|
![]() ![]() |
![]() ![]() |
Wiele sesji
W przypadku FedCM usługa One Tap wyświetla nazwę domeny najwyższego poziomu zamiast nazwy aplikacji.
Korzystanie z FedCM | Bez FedCM |
---|---|
![]() ![]() |
![]() ![]() |
Najważniejsze ścieżki użytkownika w przypadku przycisku Zaloguj się przez Google znajdziesz na stronie tego przycisku.
Zanim zaczniesz
Sprawdź, czy ustawienia i wersja przeglądarki obsługują interfejs FedCM API. Zalecamy zaktualizowanie przeglądarki do najnowszej wersji.
Interfejs FedCM API jest dostępny w Chrome w wersji 117 lub nowszej.
W Chrome jest włączone ustawienie Logowanie się za pomocą innych firm. To ustawienie wpływa tylko na opcję One Tap i nie ma wpływu na proces związany z przyciskiem FedCM.
Jeśli masz przeglądarkę Chrome w wersji 119 lub starszej, otwórz
chrome://flags
i włącz eksperymentalną funkcjęFedCmWithoutThirdPartyCookies
. W przypadku przeglądarki Chrome w wersji 120 lub nowszej nie trzeba wykonywać tego kroku.
Migracja aplikacji internetowej
Aby włączyć FedCM, ocenić potencjalny wpływ migracji i w razie potrzeby wprowadzić zmiany w dotychczasowej aplikacji internetowej:
1. Dodaj flagę logiczną, aby włączyć FedCM dla One Tap podczas inicjowania za pomocą:
HTML, ustaw atrybut
data-use_fedcm_for_prompt
natrue
.W JavaScript ustaw parametr
use_fedcm_for_prompt
natrue
w obiekcieIdConfiguration
.
2. Dodaj flagę logiczną, aby włączyć FedCM dla Button podczas inicjowania za pomocą: {:#fedcm_button_flag} (opcjonalnie)
HTML, ustaw atrybut
data-use_fedcm_for_button
natrue
, aby włączyć proces przycisku FedCM. Gdy masz włączoną tylko funkcję przycisku FedCM, możesz też ustawić atrybutdata-use_fedcm_for_button
natrue
, aby włączyć nową funkcję autoselekcji.JavaScript, ustaw
use_fedcm_for_button
natrue
w obiekcieIdConfiguration
, aby włączyć proces przycisku FedCM. Gdy włączona jest tylko metryka przycisku FedCM, możesz też ustawić atrybutbutton_auto_select
natrue
, aby włączyć nową funkcję autoselekcji.
3. Usuń z kodu metody isDisplayMoment()
, isDisplayed()
, isNotDisplayed()
i getNotDisplayedReason()
dotyczące funkcji One Tap.
Ze względu na ochronę prywatności użytkowników wywołanie zwrotne google.accounts.id.prompt
nie zwraca już żadnego powiadomienia o momencie wyświetlenia w obiekcie PromptMomentNotication
. Usuń kod, który zależy od metod związanych z momentem wyświetlenia. Są to metody isDisplayMoment()
, isDisplayed()
, isNotDisplayed()
i getNotDisplayedReason()
.
4. Usuń z kodu metodę getSkippedReason()
, która umożliwia uruchamianie aplikacji jednym kliknięciem.
Chociaż moment pominięcia, isSkippedMoment()
, nadal będzie wywoływany z funkcji google.accounts.id.prompt
w obiekcie PromptMomentNotication
, szczegółowy powód nie zostanie podany. Usuń z kodu cały kod, który zależy od metody getSkippedReason()
.
Pamiętaj, że powiadomienie o odrzuceniu chwili isDismissedMoment()
i powiązana metoda szczegółowego powodu getDismissedReason()
nie ulegają zmianie, gdy włączona jest funkcja FedCM.
5. Usuń atrybuty stylu position
z atrybutów data-prompt_parent_id
i intermediate_iframes
w przypadku reklam typu One Tap.
Rozmiar i położenie promptów użytkownika są kontrolowane przez przeglądarkę. Nie można używać niestandardowych pozycji dla funkcji One Tap na komputerze.
6. Zaktualizuj układ strony, jeśli jest to konieczne w przypadku funkcji One Tap.
Rozmiar i położenie komunikatów dla użytkowników są kontrolowane przez przeglądarkę. W zależności od układu poszczególnych stron niektóre treści mogą być nakładane, ponieważ nie są obsługiwane żadne pozycje niestandardowe dla funkcji Jednym kliknięciem na komputerze, takie jak atrybut style, data-prompt_parent_id
, intermediate_iframes
, niestandardowy element iframe i inne kreacje.
Zmień układ strony, aby poprawić wrażenia użytkowników, gdy ważne informacje są zasłonięte. Nie twórz interfejsu użytkownika wokół promptu One Tap, nawet jeśli zakładasz, że jest on domyślnie ustawiony. Interfejs FedCM API jest obsługiwany przez przeglądarkę, dlatego dostawcy różnych przeglądarek mogą umieszczać prompt w nieco innym miejscu.
7. Dodaj atrybut allow="identity-credentials-get"
do nadrzędnego elementu iframe, jeśli Twoja aplikacja internetowa wywołuje interfejs API One Tap lub Button z elementów iframe z różnych witryn.
Ramka iframe jest uważana za pochodzącą z różnych źródeł, jeśli jej źródło nie jest takie samo jak źródło nadrzędnego elementu. Na przykład:
- Różne domeny:
https://example1.com
ihttps://example2.com
- różne domeny najwyższego poziomu:
https://example.uk
ihttps://example.jp
; - Subdomeny:
https://example.com
ihttps://login.example.com
Korzystanie z usługi One Tap w ramach elementu iframe w innej domenie może być dla użytkowników mylące. Monit One Tap wyświetla nazwę domeny najwyższego poziomu, a nie iframe, jako środek bezpieczeństwa zapobiegający kradzieży danych logowania. Jednak tokeny identyfikatora są wydawane do źródła iframe. Więcej informacji znajdziesz w tym zgłoszeniu na GitHubie.
Ponieważ ta rozbieżność może być myląca, obsługiwana jest tylko metoda, która polega na używaniu interfejsu iframe w ramach tej samej witryny, ale w innej domenie. Na przykład strona w domenie najwyższego poziomu https://www.example.com
używającej iframe do umieszczania strony z jednym kliknięciem w domenie https://login.example.com
. W prośbie o logowanie się jednym dotknięciem pojawi się komunikat „Zaloguj się na example.com przez google.com”.
Wszystkie inne przypadki, np. różne domeny, są nieobsługiwane. Zamiast tego rozważ alternatywne metody integracji, takie jak:
- Implementacja przycisku Zaloguj się przez Google bez włączonego FedCM.
- Implementacja funkcji One Tap w domenie najwyższego poziomu
- Korzystanie z punktów końcowych OAuth 2.0 Google w celu bardziej dostosowanej integracji.
- Jeśli umieszczasz w ramce iframe witrynę innej firmy i nie możesz zmodyfikować implementacji funkcji One Tap, możesz uniemożliwić wyświetlanie promptu One Tap w ramce iframe. Aby to zrobić, usuń atrybut
allow="identity-credentials-get"
z tagu iframe w ramce nadrzędnej. Dzięki temu prośba o logowanie nie będzie się pojawiać, a użytkownicy będą mogli przejść bezpośrednio na stronę logowania w zaimplementowanej witrynie.
Gdy interfejs API One Tap lub Button jest wywoływany z ramek iframe z różnych źródeł, musisz dodać atrybut allow="identity-credentials-get"
do każdego tagu iframe
w ramce nadrzędnej:
<iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>
Jeśli Twoja aplikacja korzysta z elementu iframe, który zawiera inny element iframe, musisz zadbać o to, aby atrybut został dodany do każdego elementu iframe, w tym do wszystkich elementów iframe podrzędnych.
Rozważmy na przykład taki scenariusz:
Górny dokument (
https://www.example.uk
) zawiera element iframe o nazwie „IframeA”, który zawiera stronę (https://logins.example.com
).Ta umieszczona strona (
https://logins.example.com
) zawiera też element iframe o nazwie „Iframe B”, który zawiera stronę (https://onetap.example2.com
) z przyciskiem One Tap lub przyciskiem.Aby zapewnić prawidłowe wyświetlanie funkcji One Tap lub przycisku, atrybut musi zostać dodany do tagów Iframe A i Iframe B.
Przygotuj się na pytania dotyczące prośby o jeden klik lub niewyświetlonego przycisku. Inne witryny z innymi źródłami mogą umieszczać w swoich ramach iframe strony z usługą One Tap. Możesz otrzymać od użytkowników lub innych właścicieli witryn większą liczbę zgłoszeń dotyczących niewyświetlania przycisku lub funkcji One Tap. Zmiany mogą wprowadzać tylko właściciele witryn na swoich stronach. Aby ograniczyć wpływ zmian, możesz wykonać te czynności:
Zaktualizuj dokumentację dla deweloperów, aby zawierała informacje o prawidłowym konfigurowaniu iframe do wywoływania witryny. Możesz umieścić w dokumentacji link do tej strony.
W razie potrzeby zaktualizuj stronę z najczęstszymi pytaniami dewelopera.
Poinformuj zespół pomocy o nadchodzącej zmianie i już teraz przygotuj odpowiedź na zapytanie.
Aby zapewnić płynne przejście na FedCM, skontaktuj się z partnerami, klientami lub właścicielami witryn, których dotyczy problem.
8. Dodaj te dyrektywy do standardu Content Security Policy (CSP).
Ten krok jest opcjonalny, ponieważ nie wszystkie witryny definiują CSP.
Jeśli w Twojej witrynie nie jest używany nagłówek CSP, nie musisz wprowadzać żadnych zmian.
Jeśli usługa CSP działa z obecną usługą One Tap lub Button i nie używasz
connect-src
,frame-src
,script-src
,style-src
anidefault-src
, nie musisz wprowadzać żadnych zmian.W przeciwnym razie skonfiguruj dostawcę usług w chmurze, korzystając z tego przewodnika. Bez prawidłowej konfiguracji CSP przycisk FedCM One Tap lub przycisk nie będzie wyświetlany w witrynie.
9. Usuń obsługę logowania na przyspieszonych stronach mobilnych (AMP).
Obsługa logowania użytkownika w AMP jest opcjonalną funkcją GIS, którą możesz zaimplementować w swojej aplikacji internetowej. W takim przypadku
Usuń wszelkie odniesienia do:
- element niestandardowy
amp-onetap-google
, <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
Rozważ przekierowywanie żądań logowania z AMP do procesu logowania w Twojej witrynie w formacie HTML. Pamiętaj, że powiązany z nim element
Intermediate Iframe Support API
nie jest dotknięty.
Testowanie i weryfikowanie migracji
Po wprowadzeniu niezbędnych zmian na podstawie poprzednich kroków możesz sprawdzić, czy migracja się udała.
Sprawdź, czy Twoja przeglądarka obsługuje FedCM i czy masz aktywną sesję w koncie Google.
Otwórz w aplikacji stronę z jednym kliknięciem lub przyciskiem.
Upewnij się, że prośba o jeden klik lub przycisk są wyświetlane i bezpiecznie nakładają się na zawartość.
Podczas logowania się w aplikacji za pomocą funkcji One Tap lub przycisku sprawdź, czy do punktu końcowego lub metody wywołania zwrotnego zwracane są prawidłowe poświadczenia.
Jeśli automatyczne logowanie jest włączone, sprawdź, czy anulowanie działa i czy do punktu końcowego lub metody wywołania zwrotnego zwracane są prawidłowe dane logowania.
Okres oczekiwania w przypadku funkcji One Tap
Kliknięcie opcji Jednym kliknięciem
w prawym górnym rogu powoduje zamknięcie promptu i wprowadzenie okresu przerwy, który tymczasowo uniemożliwia wyświetlanie promptu Jednym kliknięciem. Jeśli w Chrome chcesz, aby powiadomienie One Tap zostało wyświetlone ponownie przed zakończeniem okresu oczekiwania, możesz zresetować stan oczekiwania. Aby to zrobić, kliknij ikonę kłódki na pasku adresu i kliknij przycisk Zresetuj uprawnienia.Okres ciszy dla automatycznego logowania
Podczas testowania logowania automatycznego za pomocą FedCM w jednym dotknięciu występuje 10-minutowy okres bezczynności między każdą próbą logowania automatycznego. Nie można zresetować okresu ciszy. Aby ponownie włączyć automatyczne logowanie, musisz odczekać 10 minut lub użyć innego konta Google.
Przydatne materiały
Privacy Sandbox Analysis Tool (PSAT) to rozszerzenie narzędzi deweloperskich Chrome, które ułatwia stosowanie alternatywnych interfejsów API, takich jak FedCM. Narzędzie działa poprzez skanowanie witryny pod kątem funkcji, których dotyczy problem, i podaje listę zalecanych zmian.