Junior
Jak nastavit cookies tak, aby se mazaly po 3 dnech?
sobes.tech AI
Odpověď od AI
Pro nastavení "cookie" s odstraněním za 3 dny lze použít atribut expires nebo max-age.
-
expires: Určuje konkrétní datum a čas vypršení platnosti. Datum musí být ve formátu GMT (universální globální čas).
-
max-age: Určuje počet sekund, po kterých má "cookie" vypršet, počínaje okamžikem nastavení. Jedná se o flexibilnější a doporučený způsob.
Příklad v JavaScriptu s použitím max-age:
// Získáme aktuální čas v milisekundách
const now = new Date().getTime();
// Vypočítáme čas za 3 dny v milisekundách
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Vypočítáme čas vypršení v milisekundách
const expirationTime = now + threeDaysInMilliseconds;
// Vytvoříme objekt Date pro čas vypršení
const expirationDate = new Date(expirationTime);
// Nastavíme cookie s atributem expires, převedeným na formát GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Nebo použijeme max-age (doporučeno)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Další atributy pro lepší praxi:
// secure - cookie se odesílá pouze přes HTTPS
// HttpOnly - cookie není dostupná přes document.cookie (ochrana před XSS)
// path - cesta, pro kterou je cookie platná
// domain - doména, pro kterou je cookie platná
// SameSite - zabraňuje odesílání cookie při cross-site požadavcích (doporučeno: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Porovnání expires a max-age:
| Atribut | Popis | Formát | Výhody | Nevýhody |
|---|---|---|---|---|
expires |
Určuje konkrétní datum vypršení. | Datum ve formátu GMT. | Kompatibilní se staršími prohlížeči. | Závisí na přesném čase na klientském zařízení. |
max-age |
Určuje počet sekund do vypršení. | Počet sekund. | Není závislý na přesném čase. Flexibilnější. Doporučeno. | Může být plně nepodporováno ve starších prohlížečích. |
Také "cookie" mohou být nastaveny na straně serveru například pomocí hlavičky Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Zde Max-Age=259200 odpovídá 3 dnům v sekundách (3 * 24 * 60 * 60).