Junior
Ako nastaviť cookies, aby sa po 3 dňoch vymazali?
sobes.tech AI
Odpoveď od AI
Na nastavenie "cookie" s odstránením za 3 dni môžete použiť atribút expires alebo max-age.
-
expires: Určuje konkrétny dátum a čas vypršania platnosti. Dátum musí byť vo formáte GMT (univerzálny globálny čas).
-
max-age: Určuje počet sekúnd, po ktorých má "cookie" vypršať, počnúc okamihom nastavenia. Ide o flexibilnejší a odporúčaný spôsob.
Príklad v JavaScripte s použitím max-age:
// Získame aktuálny čas v milisekundách
const now = new Date().getTime();
// Vypočítame čas za 3 dni v milisekundách
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Vypočítame čas vypršania v milisekundách
const expirationTime = now + threeDaysInMilliseconds;
// Vytvoríme objekt Date pre čas vypršania
const expirationDate = new Date(expirationTime);
// Nastavíme cookie s atribútom expires, prevedeným na formát GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Ale použijeme max-age (odporúčané)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Ďalšie atribúty pre lepšiu prax:
// secure - cookie sa odosiela iba cez HTTPS
// HttpOnly - cookie nie je dostupná cez document.cookie (ochrana pred XSS)
// path - cesta, pre ktorú je cookie platná
// domain - doména, pre ktorú je cookie platná
// SameSite - zabraňuje odosielaniu cookie pri cross-site požiadavkách (odporúčané: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Porovnanie expires a max-age:
| Atribút | Popis | Formát | Výhody | Nevýhody |
|---|---|---|---|---|
expires |
Určuje konkrétny dátum vypršenia. | Dátum vo formáte GMT. | Kompatibilný so staršími prehliadačmi. | Závisí od presnosti času na klientskom zariadení. |
max-age |
Určuje počet sekúnd do vypršenia. | Počet sekúnd. | Nie je závislý od presnosti času. Flexibilnejší. Odporúčané. | Môže byť čiastočne nepodporované v starších prehliadačoch. |
Tiež "cookie" môžu byť nastavené na strane servera, napríklad pomocou hlavičky Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Tu Max-Age=259200 zodpovedá 3 dňom v sekundách (3 * 24 * 60 * 60).