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