Junior
Come impostare i cookie in modo che vengano eliminati dopo 3 giorni?
sobes.tech AI
Risposta dell'AI
Per impostare un "cookie" con scadenza in 3 giorni, puoi usare l'attributo expires o max-age.
-
expires: Imposta una data e ora specifica di scadenza. La data deve essere in formato GMT (Tempo Universale Coordinato).
-
max-age: Imposta il numero di secondi dopo i quali il "cookie" deve scadere, a partire dal momento della sua creazione. È un metodo più flessibile e raccomandato.
Esempio in JavaScript usando max-age:
// Ottieni l'ora attuale in millisecondi
const now = new Date().getTime();
// Calcola il tempo in millisecondi per 3 giorni
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Calcola il tempo di scadenza in millisecondi
const expirationTime = now + threeDaysInMilliseconds;
// Crea un oggetto Date per l'ora di scadenza
const expirationDate = new Date(expirationTime);
// Imposta il cookie con l'attributo expires, convertendo la data in formato GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Oppure usa max-age (raccomandato)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Attributi aggiuntivi per le migliori pratiche:
// secure - il cookie viene inviato solo tramite HTTPS
// HttpOnly - il cookie non è accessibile tramite document.cookie (protezione da XSS)
// path - percorso per cui il cookie è valido
// domain - dominio per cui il cookie è valido
// SameSite - previene l'invio del cookie in richieste tra siti (raccomandato: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Confronto tra expires e max-age:
| Attributo | Descrizione | Formato | Vantaggi | Svantaggi |
|---|---|---|---|---|
expires |
Indica una data di scadenza specifica. | Data in formato GMT. | Compatibile con browser più vecchi. | Dipende dall'orario esatto del client. |
max-age |
Indica il numero di secondi fino alla scadenza. | Numero di secondi. | Non dipende dall'orario del client. Più flessibile. Raccomandato. | Potrebbe non essere supportato completamente dai browser più vecchi. |
Le "cookie" possono anche essere impostate lato server, ad esempio usando l'intestazione Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Qui, Max-Age=259200 corrisponde a 3 giorni in secondi (3 * 24 * 60 * 60).