Junior
Hogyan állíthatom be a cookie-kat úgy, hogy 3 nap múlva törlődjenek?
sobes.tech MI
Válasz az MI-től
3 nap múlva törlődő "cookie" beállításához használhatja az expires vagy max-age attribútumot.
-
expires: Egy konkrét dátumot és időpontot ad meg a lejáratra. A dátumnak GMT formátumban kell lennie.
-
max-age: Megadja a másodpercek számát, ameddig a "cookie" érvényes marad, a létrehozás pillanatától számítva. Ez egy rugalmasabb és ajánlott módszer.
JavaScript példában max-age használatával:
// A jelenlegi idő millisekundumban
const now = new Date().getTime();
// Számítsuk ki a 3 napot millisekundumban
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Számítsuk ki a lejárati időt millisekundumban
const expirationTime = now + threeDaysInMilliseconds;
// Hozzunk létre egy Date objektumot a lejárati időre
const expirationDate = new Date(expirationTime);
// Állítsuk be a cookie-t az expires attribútummal, a dátum GMT formátumba konvertálva
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Vagy használjuk a max-age-t (ajánlott)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// További attribútumok a legjobb gyakorlat érdekében:
// secure - a cookie csak HTTPS-en keresztül kerül elküldésre
// HttpOnly - a cookie nem érhető el a document.cookie-n keresztül (védelmet nyújt az XSS ellen)
// path - az útvonal, ahol a cookie érvényes
// domain - a domain, ahol a cookie érvényes
// SameSite - megakadályozza a cookie küldését cross-site kérésekben (ajánlott: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Az expires és max-age összehasonlítása:
| Attribútum | Leírás | Formátum | Előnyök | Hátrányok |
|---|---|---|---|---|
expires |
Egy konkrét lejárati dátumot ad meg. | GMT formátumú dátum. | Kompatibilis régebbi böngészőkkel. | A kliens pontos időpontjától függ. |
max-age |
A lejáratig hátralévő másodpercek számát adja meg. | Szám (másodperc). | Nem függ a kliens időpontjától. Rugalmasabb. Ajánlott. | Lehet, hogy nem támogatott teljes mértékben régebbi böngészőkben. |
A cookie-k szerver oldalról is beállíthatók, például a Set-Cookie fejléc használatával.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Itt a Max-Age=259200 megfelel 3 napnak másodpercekben (3 * 24 * 60 * 60).