Cuando hagas la transición de tu sitio a cookies particionadas, es posible que encuentres comportamiento inesperado si una cookie particionada y no particionada con la misma están presentes para cualquier cliente.
Configurar una cookie particionada no anulará ni reemplazará una existente cookie no particionada con el mismo nombre. Ambos existirán, siempre y cuando los socios las cookies están habilitadas, pero en contenedores de cookies separados. Cuando las cookies de terceros se inhabilitado, solo se aceptará el particionado. Si ambas cookies son no es posible saber de forma programática cuál está particionada y cuál no, y esto puede generar un comportamiento inesperado.
Existen dos opciones posibles para abordar este problema: 1) Haz que la cookie que reemplazas caduque 2) Cómo cambiar el nombre de las cookies
Consideraciones clave
A medida que realizas la transición a cookies particionadas, ten en cuenta lo siguiente:
- No hay forma de determinar de manera programática si una cookie es particionadas o no particionadas. Sin embargo, puedes determinar el estado particionado de la cookie en las Herramientas para desarrolladores de Chrome.
- Las cookies particionadas no reemplazan las cookies no particionadas: dos cookies
que sean exactamente iguales (es decir, que tengan los mismos atributos, como nombre, dominio o ruta de acceso)
se tratarán como cookies independientes si solo una tiene el atributo
Partitioned
. - Es mejor evitar una situación en la que haya tanto cookie y una cookie no particionada con el mismo nombre que se devuelve en misma llamada de red.
Haz que las cookies que reemplaces caduquen
Si tu sitio o servicio no puede admitir un cambio de nombre, puedes crear un
cookie particionada nueva mientras caduca la cookie no particionada existente. Mientras que
no hay forma de determinar si una cookie está particionada, Set-Cookie
los encabezados sin un atributo Partitioned
no afectarán las cookies que no estén particionadas.
En el siguiente ejemplo, se muestra cómo hacer que la cookie no particionada llamada example
venza y dejar las cookies particionadas sin impacto, incluso si tienen el mismo nombre. Un nuevo
se agregará o actualizará la cookie particionada llamada cookieName
si ya está
existe.
Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Cómo cambiar el nombre de las cookies
La forma más sólida de garantizar que exista una transición sin problemas es usar nombres diferentes para las cookies particionadas y no particionadas. Por ejemplo, tiene una cookie no particionada llamada “example”, puedes migrarlo a un cookie particionada.
Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Dado que el vencimiento de la cookie no se expone de forma programática, no hay manera de configurar el vencimiento de la nueva cookie para que coincida el vencimiento de la cookie. Puede ser pragmático actualizar el valor de la cookie durante este proceso.
Mantén cookies particionadas y no particionadas
Durante el período de transición, considera mantener dos cookies sincronizadas separadas:
uno que está particionado y otro que no. Por ejemplo, puedes tener tanto
Cookies auth
y auth-partitioned
, donde esta última se configuró con el
atributo Partitioned
.
Intenta configurar ambas cookies cada vez que se actualice el valor.
- En clientes que bloquean cookies de terceros, pero que aún no admiten CHIPS: no se aceptará ninguna cookie.
- En clientes que bloquean cookies de terceros y admiten CHIPS: el
auth
la cookie se rechazará, pero la cookieauth-partitioned
se aceptará. - En clientes que no bloquean las cookies de terceros, sin importar si
admiten CHIPS: se aceptan
auth
yauth-partitioned
.
Cuando tu aplicación necesite leer la cookie de autenticación, debes consultar
por auth-partitioned
primero; pero si debes revertir temporalmente
cambio, puedes recurrir a buscar la cookie auth
.
Una vez que hayas establecido que la mayoría de los usuarios tuvo
las cookies actualizadas, la cookie auth-partitioned
podría eliminarse y la
Se podría agregar un atributo particionado a la cookie de autenticación normal.