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