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