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).