Junior
¿Cómo configurar las cookies para que se eliminen después de 3 días?
sobes.tech AI
Respuesta de la IA
Para establecer una "cookie" con eliminación en 3 días, se puede usar el atributo expires o max-age.
-
expires: Establece una fecha y hora específicas de vencimiento. La fecha debe estar en formato GMT (hora universal coordinada).
-
max-age: Establece la cantidad de segundos después de los cuales la "cookie" debe expirar, comenzando desde el momento de su establecimiento. Es una forma más flexible y recomendada.
Ejemplo en JavaScript usando max-age:
// Obtenemos la hora actual en milisegundos
const now = new Date().getTime();
// Calculamos el tiempo en milisegundos para 3 días
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Calculamos el tiempo de expiración en milisegundos
const expirationTime = now + threeDaysInMilliseconds;
// Creamos un objeto Date para la hora de expiración
const expirationDate = new Date(expirationTime);
// Establecemos la cookie con el atributo expires, convirtiendo la fecha a formato GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// O usamos max-age (recomendado)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Atributos adicionales para mejores prácticas:
// secure - la cookie solo se envía por HTTPS
// HttpOnly - la cookie no es accesible a través de document.cookie (protección contra XSS)
// path - ruta para la cual la cookie es válida
// domain - dominio para la cual la cookie es válida
// SameSite - evita que la cookie se envíe en solicitudes entre sitios (recomendado: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Comparación entre expires y max-age:
| Atributo | Descripción | Formato | Ventajas | Desventajas |
|---|---|---|---|---|
expires |
Indica una fecha específica de vencimiento. | Fecha en formato GMT. | Compatibilidad con navegadores antiguos. | Depende del tiempo exacto en la máquina del cliente. |
max-age |
Indica la cantidad de segundos hasta la expiración. | Cantidad de segundos. | No depende del tiempo exacto. Más flexible. Recomendado. | Puede no ser completamente soportado en navegadores antiguos. |
Además, las "cookies" también pueden establecerse en el lado del servidor, por ejemplo, usando la cabecera Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Aquí, Max-Age=259200 corresponde a 3 días en segundos (3 * 24 * 60 * 60).