Gdy przechodzisz w witrynie na partycjonowane pliki cookie, możesz zauważyć nieoczekiwane zachowanie, jeśli w przypadku dowolnego klienta występuje zarówno partycjonowany, jak i nieparty plik cookie o tych samych nazwach.
Ustawienie partycjonowanego pliku cookie nie zastąpi ani nie zastąpi dotychczasowego niepartycjonowanego pliku cookie o tej samej nazwie. Oba będą istnieć, dopóki włączone będą pliki cookie innych firm, ale w osobnych magazynach plików cookie. Po wyłączeniu plików cookie innych firm akceptowane będą tylko pliki partycjonowane. Jeśli występują oba pliki cookie, nie da się automatycznie określić, który z nich jest partycjonowany, a który nie. Może to prowadzić do nieoczekiwanego zachowania.
Możesz to zrobić na 2 sposoby: 1. Wygaś plik cookie, który zastępujesz. 2. Zmienianie nazw plików cookie
Najważniejsze kwestie
Podczas przechodzenia na partycjonowane pliki cookie pamiętaj o tych kwestiach:
- Nie można automatycznie określić, czy plik cookie jest partycjonowany czy nie. Można jednak określić stan partycjonowania pliku cookie w Narzędziach deweloperskich w Chrome.
- Partycjonowane pliki cookie nie zastępują niepartycjonowanych plików cookie. Jeśli tylko jeden z nich ma atrybut
Partitioned
, 2 pliki cookie, które są dokładnie takie same (mają takie same atrybuty jak nazwa, domena czy ścieżka). - Najlepiej uniknąć sytuacji, w której w tym samym wywołaniu sieci będą zwracane zarówno partycjonowane pliki cookie, jak i niepartycjonowane pliki cookie o tej samej nazwie.
Wygasanie zastępowanych plików cookie
Jeśli w Twojej witrynie lub usłudze nie można zmienić nazwy, możesz utworzyć nowy partycjonowany plik cookie z wygaśnięciem istniejącego niepartycjonowanego pliku cookie. Nie można sprawdzić, czy plik cookie jest partycjonowany, ale nagłówki Set-Cookie
bez atrybutu Partitioned
nie mają wpływu na pliki cookie, które nie są partycjonowane.
Z poniższego przykładu dowiesz się, jak wygasnąć niepartycjonowany plik cookie o nazwie example
i pozostawić wszystkie partycjonowane pliki cookie bez wpływu na działanie, nawet jeśli mają taką samą nazwę. Nowy partycjonowany plik cookie o nazwie cookieName
zostanie dodany lub zaktualizowany, jeśli już 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
Najbezpieczniejszym sposobem zapewnienia płynnego przejścia jest używanie różnych nazw partycjonowanych i bez partycjonowanych plików cookie. Jeśli na przykład masz niepartycjonowany plik cookie o nazwie „example”, możesz go przenieść do partycjonowanego pliku cookie.
Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Okres ważności pliku cookie nie jest ujawniany automatycznie, dlatego nie można ustawić wygaśnięcia nowego pliku cookie, aby zbiegł się on z datą wygaśnięcia niepartycjonowanego pliku cookie. Odświeżanie wartości pliku cookie podczas tego procesu może być pragmatyczne.
Przechowywanie partycjonowanych i niepartycjonowanych plików cookie
W okresie przejściowym staraj się utrzymywać 2 oddzielne zsynchronizowane pliki cookie: jeden jest partycjonowany, a drugi nie. Możesz na przykład mieć zarówno pliki cookie auth
, jak i auth-partitioned
, przy czym ten ostatni został skonfigurowany z atrybutem Partitioned
.
Przy każdej zmianie 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, pliki cookie nie będą akceptowane.
- W przypadku klientów, którzy blokują pliki cookie innych firm i obsługują CHIPS, plik cookie
auth
zostanie odrzucony, ale plik cookieauth-partitioned
zostanie zaakceptowany. - W przypadku klientów, które nie blokują plików cookie innych firm, niezależnie od tego, czy obsługują CHIPS: akceptowane są zarówno elementy
auth
, jak iauth-partitioned
.
Gdy aplikacja musi odczytać plik cookie uwierzytelniania, najpierw poszukaj elementu auth-partitioned
. Jeśli jednak musisz tymczasowo cofnąć tę zmianę, możesz wrócić do wyszukiwania pliku cookie auth
.
Gdy stwierdzisz, że pliki cookie większości użytkowników zostały odświeżone, możesz wycofać plik cookie auth-partitioned
, a atrybut partycjonowany – dodać do zwykłego pliku cookie uwierzytelniania.