Junior
Kuidas seadistada küpsiseid, et need kustutataks pärast 3 päeva?
sobes.tech AI
Vastus AI-lt
3 päeva pärast kustutamiseks saab määrata "küpsise" expires või max-age atribuudid.
-
expires: Määrab konkreetse kuupäeva ja aja, millal "küpsis" lõpeb. Kuupäev peab olema GMT formaadis.
-
max-age: Määrab sekundite arvu, mille jooksul "küpsis" peaks lõppema, alates selle määramise hetkest. See on paindlikum ja soovitatav viis.
Näide JavaScriptis max-age kasutades:
// Saame praeguse aja millisekundites
const now = new Date().getTime();
// Arvutame 3 päeva aja millisekundites
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Arvutame lõppemise aja
const expirationTime = now + threeDaysInMilliseconds;
// Loome Date objekti lõppamise ajaks
const expirationDate = new Date(expirationTime);
// Seadistame küpsise `expires` atribuudiga, mis on muudetud GMT formaati
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Või kasutame `max-age` (soovitatav)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Täiendavad atribuudid parema praktika jaoks:
// secure - küpsis saadetakse ainult HTTPS-i kaudu
// HttpOnly - küpsis ei ole document.cookie kaudu kättesaadav (kaitse XSS eest)
// path - tee, mille jaoks küpsis kehtib
// domain - domeen, mille jaoks küpsis kehtib
// SameSite - takistab küpsise saatmist cross-site päringutes (soovitatav: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Võrdlus expires ja max-age:
| Atribuut | Kirjeldus | Formaat | Eelistused | Miinused |
|---|---|---|---|---|
expires |
Määrab konkreetse lõppkuupäeva | GMT formaadis kuupäev | Ühilduv vanemate brauseritega | Sõltub kliendi seadme aja täpsusest |
max-age |
Määrab sekundite arvu kuni lõppkuupäevani | Sekundid | Ei sõltu aja täpsusest | Võib olla osaliselt toetatud vanemate brauserite poolt |
Samuti saab serveri poolt määrata "küpsiseid", näiteks Set-Cookie päise kaudu:
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Siin Max-Age=259200 vastab 3 päevale sekundites (3 * 24 * 60 * 60).