Podczas przenoszenia witryny na partycjonowane pliki cookie możesz napotkać nieoczekiwane zachowanie, jeśli zarówno partycjonowany, jak i niepartycjonowany plik cookie z takim samym dla każdego klienta.
Ustawienie podzielonego pliku cookie nie zastąpi ani nie zastąpi istniejącego pliku cookie niepartycjonowany plik cookie o tej samej nazwie. Oba będą funkcjonować, o ile są pliki cookie są włączone, ale w osobnych kontenerach z plikami cookie. Gdy pliki cookie innych firm są wyłączona, akceptowana będzie tylko ta partycjonowana. Jeśli oba pliki cookie są nie można automatycznie określić, która z nich jest partycjonowana, a w przeciwnym razie – może to prowadzić do nieoczekiwanego działania.
Istnieją dwa sposoby rozwiązania tego problemu: 1. Utrata ważności pliku cookie, który zastępujesz 2. Zmienianie nazw plików cookie
Najważniejsze kwestie
Przechodząc na partycjonowane pliki cookie, pamiętaj o tych kwestiach:
- Nie można automatycznie określić, czy plik cookie jest lub partycjonowania. Możesz jednak określić i stan partycjonowania pliku cookie w Narzędziach deweloperskich w Chrome.
- Pliki cookie partycjonowane nie zastępują tych, które są podzielone – są to 2 elementy.
są dokładnie takie same (czyli mają te same atrybuty, np. nazwę, domenę lub ścieżkę);
będą traktowane jako osobne pliki cookie, jeśli tylko jeden z nich ma atrybut
Partitioned
. - Lepiej unikać sytuacji, w której oba adresy URL są partycjonowane i niepartycjonowanego pliku cookie o tej samej nazwie, które są zwracane w funkcji to samo wywołanie sieci.
Anulowanie zastępowanych plików cookie
Jeśli witryna lub usługa nie pozwala na zmianę nazwy, można utworzyć
nowego podzielonego pliku cookie z wygaśnięciem istniejącego. Choć
nie można ustalić, czy plik cookie jest partycjonowany, Set-Cookie
nagłówki bez atrybutu Partitioned
nie będą miały wpływu na pliki cookie, które nie są partycjonowane.
W przykładzie poniżej pokazujemy, jak wygasać niepartycjonowany plik cookie o nazwie example
i nie mieć wpływu na partycjonowane pliki cookie, nawet jeśli mają taką samą nazwę. Nowy
podzielony plik cookie o nazwie cookieName
zostanie dodany lub zaktualizowany, jeśli już jest
istnieje.
Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Zmienianie nazw plików cookie
Najlepszym sposobem na zapewnienie płynnego przejścia jest różne nazwy plików cookie partycjonowanych i niepartycjonowanych. Na przykład, jeśli masz niepartycjonowany plik cookie o nazwie „example”, możesz przenieść go do partycjonowanego pliku cookie.
Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Data ważności pliku cookie nie jest ujawniana automatycznie, więc aby ustawić datę ważności nowego pliku cookie tak, aby odpowiadała identyfikatorowi bez partycji okres ważności pliku cookie. Odświeżenie wartości pliku cookie może być pragmatyczne. podczas tego procesu.
Przechowuj pliki cookie partycjonowane i bez partycji
W okresie przejściowym rozważ zachowanie 2 oddzielnych synchronizowanych plików cookie:
jedno podzielone, a drugie nie. Możesz na przykład mieć zarówno
auth
i auth-partitioned
, przy czym ten drugi został ustawiony za pomocą makra
Partitioned
.
Po każdej aktualizacji wartości należy spróbować ustawić oba pliki cookie.
- W przypadku klientów, które blokują pliki cookie innych firm, ale nie obsługują jeszcze CHIPS: żaden z nich nie zostanie zaakceptowany.
- W przypadku klientów, które blokują pliki cookie innych firm i obsługują CHIPS:
auth
zostanie odrzucony, ale zaakceptowany plik cookieauth-partitioned
. - W przypadku klientów, które nie blokują plików cookie innych firm, niezależnie od tego,
obsługują CHIPY: akceptowane są zarówno
auth
, jak iauth-partitioned
.
Gdy aplikacja musi odczytać plik cookie uwierzytelniania, sprawdź,
najpierw dla auth-partitioned
; ale jeśli musisz tymczasowo wycofać zmiany
możesz wrócić do wyszukiwania pliku cookie auth
.
Gdy ustalisz, że większość użytkowników
ich pliki cookie zostaną odświeżone, plik auth-partitioned
może zostać wycofany, a
Do zwykłego pliku cookie uwierzytelniania można dodać atrybut partycjonowany.