Junior
Cum să configurez cookie-urile astfel încât să fie șterse după 3 zile?
sobes.tech AI
Răspuns de la AI
Pentru a seta un "cookie" cu expirare în 3 zile, poți folosi atributul expires sau max-age.
-
expires: Stabilește o dată și o oră specifică de expirare. Data trebuie să fie în format GMT (Ora Universală Coordonată).
-
max-age: Stabilește numărul de secunde după care "cookie" trebuie să expire, începând din momentul creării. Este o metodă mai flexibilă și recomandată.
Exemplu în JavaScript folosind max-age:
// Obținem timpul curent în milisecunde
const now = new Date().getTime();
// Calculăm timpul în milisecunde pentru 3 zile
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Calculăm timpul de expirare în milisecunde
const expirationTime = now + threeDaysInMilliseconds;
// Creăm un obiect Date pentru timpul de expirare
const expirationDate = new Date(expirationTime);
// Setăm cookie-ul cu atributul expires, convertind data în format GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Sau folosim max-age (recomandat)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Atribute suplimentare pentru cele mai bune practici:
// secure - cookie-ul este trimis doar prin HTTPS
// HttpOnly - cookie-ul nu este accesibil prin document.cookie (protecție împotriva XSS)
// path - calea pentru care este valabil cookie-ul
// domain - domeniul pentru care este valabil cookie-ul
// SameSite - previne trimiterea cookie-ului în cererile între site-uri (recomandat: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Compararea expires și max-age:
| Atribut | Descriere | Format | Avantaje | Dezavantaje |
|---|---|---|---|---|
expires |
Indică o dată specifică de expirare. | Data în format GMT. | Compatibil cu browserele mai vechi. | Depinde de ora exactă pe calculatorul clientului. |
max-age |
Indică numărul de secunde până la expirare. | Număr de secunde. | Nu depinde de ora exactă. Mai flexibil. Recomandat. | Poate să nu fie suportat complet de browserele mai vechi. |
Cookie-urile pot fi, de asemenea, setate pe partea serverului, de exemplu, folosind antetul Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Aici, Max-Age=259200 corespunde cu 3 zile în secunde (3 * 24 * 60 * 60).