Sobes.tech
Junior

Comment configurer les cookies pour qu'elles soient supprimées après 3 jours?

sobes.tech IA

Réponse de l'IA

Pour définir un "cookie" avec suppression après 3 jours, vous pouvez utiliser l'attribut expires ou max-age.

  • expires : Définit une date et une heure spécifiques d'expiration. La date doit être au format GMT (temps universel coordonné).

  • max-age : Définit le nombre de secondes après lesquelles le "cookie" doit expirer, à partir du moment de sa création. C'est une méthode plus flexible et recommandée.

Exemple en JavaScript utilisant max-age :

// Obtenir l'heure actuelle en millisecondes
const now = new Date().getTime();

// Calculer le temps en millisecondes pour 3 jours
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Calculer le temps d'expiration en millisecondes
const expirationTime = now + threeDaysInMilliseconds;

// Créer un objet Date pour l'heure d'expiration
const expirationDate = new Date(expirationTime);

// Définir le cookie avec l'attribut expires, en convertissant la date au format GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Ou utiliser max-age (recommandé)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Attributs supplémentaires pour de meilleures pratiques :
// secure - le cookie est envoyé uniquement via HTTPS
// HttpOnly - le cookie n'est pas accessible via document.cookie (protection contre XSS)
// path - chemin pour lequel le cookie est valable
// domain - domaine pour lequel le cookie est valable
// SameSite - empêche l'envoi du cookie lors de requêtes inter-sites (recommandé : Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

Comparaison entre expires et max-age :

Attribut Description Format Avantages Inconvénients
expires Indique une date d'expiration précise. Date au format GMT. Compatibilité avec les anciens navigateurs. Dépend de l'heure exacte sur la machine du client.
max-age Indique le nombre de secondes jusqu'à l'expiration. Nombre de secondes. Ne dépend pas de l'heure exacte. Plus flexible. Recommandé. Peut ne pas être entièrement supporté par les anciens navigateurs.

De plus, les "cookies" peuvent également être définis côté serveur, par exemple en utilisant l'en-tête Set-Cookie.

Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax

Ici, Max-Age=259200 correspond à 3 jours en secondes (3 * 24 * 60 * 60).