Passer des cookies non partitionnés aux cookies partitionnés

Lors de la transition de votre site vers des cookies partitionnés, vous pouvez rencontrer un comportement inattendu si un cookie partitionné et non partitionné portant les mêmes noms est présent pour un client donné.

La définition d'un cookie partitionné ne remplace ni ne remplace un cookie non partitionné existant portant le même nom. Les deux existeront tant que les cookies tiers sont activés, mais dans des bocaux à cookies distincts. Lorsque les cookies tiers sont désactivés, seul le cookie partitionné est accepté. Si les deux cookies sont présents, il n'est pas possible de déterminer de manière programmatique laquelle est partitionné ou non, ce qui peut entraîner un comportement inattendu.

Vous disposez de deux options pour résoudre ce problème : 1. Faites expirer le cookie que vous remplacez. 2. Renommer vos cookies

Remarques importantes

Lorsque vous passez aux cookies partitionnés, gardez à l'esprit les points suivants:

  1. Il n'existe aucun moyen de déterminer de manière programmatique si un cookie est partitionné ou non. Vous pouvez toutefois déterminer l'état partitionné d'un cookie dans les outils pour les développeurs Chrome.
  2. Les cookies partitionnés ne remplacent pas les cookies non partitionnés. Deux cookies identiques (c'est-à-dire ayant les mêmes attributs tels que le nom, le domaine ou le chemin d'accès) sont traités comme des cookies distincts si un seul d'entre eux possède l'attribut Partitioned.
  3. Il est préférable d'éviter de renvoyer dans le même appel réseau un cookie partitionné et un cookie non partitionné du même nom.

Faire expirer les cookies que vous remplacez

Si votre site ou service ne peut pas accueillir un changement de nom, vous pouvez créer un cookie partitionné tout en faisant expirer le cookie non partitionné existant. Bien qu'il n'existe aucun moyen de déterminer si un cookie est partitionné ou non, les en-têtes Set-Cookie sans attribut Partitioned n'affectent pas les cookies non partitionnés.

L'exemple suivant montre comment faire expirer le cookie non partitionné nommé example et laisser les cookies partitionnés non impactés, même s'ils portent le même nom. Un cookie partitionné nommé cookieName sera ajouté ou mis à jour s'il existe déjà.

Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Renommer vos cookies

Le moyen le plus fiable d'assurer une transition fluide consiste à utiliser des noms différents pour les cookies partitionnés et non partitionnés. Par exemple, si vous avez un cookie non partitionné nommé "example", vous pouvez le migrer vers un cookie partitionné.

Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Étant donné que l'expiration du cookie n'est pas exposée de manière programmatique, il est impossible de définir la date d'expiration du nouveau cookie de sorte qu'elle coïncide avec celle du cookie non partitionné. Il peut être pragmatique d'actualiser la valeur du cookie pendant ce processus.

Gérer les cookies partitionnés et non partitionnés

Pendant la période de transition, envisagez de conserver deux cookies synchronisés distincts : l'un partitionné et l'autre non. Par exemple, vous pouvez avoir à la fois des cookies auth et auth-partitioned, où ce dernier a été défini avec l'attribut Partitioned.

Chaque fois que la valeur est mise à jour, vous devez essayer de définir les deux cookies.

  • Pour les clients qui bloquent les cookies tiers, mais ne sont pas encore compatibles avec les CHIPS, aucun cookie ne sera accepté.
  • Sur les clients qui bloquent les cookies tiers et sont compatibles avec les CHIPS: le cookie auth sera refusé, mais le cookie auth-partitioned sera accepté.
  • Sur les clients qui ne bloquent pas les cookies tiers, qu'ils soient compatibles ou non avec les CHIPS: auth et auth-partitioned sont acceptés.

Lorsque votre application doit lire le cookie d'authentification, vous devez d'abord rechercher auth-partitioned. Toutefois, si vous devez effectuer un rollback temporaire de la modification, vous pouvez revenir au cookie auth.

Une fois que vous avez vérifié que les cookies de la majorité des utilisateurs ont été actualisés, le cookie auth-partitioned peut être supprimé et l'attribut partitionné peut être ajouté au cookie d'authentification standard.