Junior
Como definir cookies para que sejam apagados após 3 dias?
sobes.tech IA
Resposta da IA
Para definir um "cookie" com remoção após 3 dias, pode usar o atributo expires ou max-age.
-
expires: Define uma data e hora específicas de expiração. A data deve estar no formato GMT (Tempo Universal Coordenado).
-
max-age: Define o número de segundos após os quais o "cookie" deve expirar, começando a partir do momento da sua criação. É uma forma mais flexível e recomendada.
Exemplo em JavaScript usando max-age:
// Obter a hora atual em milissegundos
const now = new Date().getTime();
// Calcular o tempo em milissegundos para 3 dias
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Calcular o tempo de expiração em milissegundos
const expirationTime = now + threeDaysInMilliseconds;
// Criar um objeto Date para a hora de expiração
const expirationDate = new Date(expirationTime);
// Definir o cookie com o atributo expires, convertendo a data para o formato GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Ou usar max-age (recomendado)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Atributos adicionais para melhores práticas:
// secure - o cookie é enviado apenas via HTTPS
// HttpOnly - o cookie não é acessível via document.cookie (proteção contra XSS)
// path - caminho para o qual o cookie é válido
// domain - domínio para o qual o cookie é válido
// SameSite - impede o envio do cookie em requisições entre sites (recomendado: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Comparação entre expires e max-age:
| Atributo | Descrição | Formato | Vantagens | Desvantagens |
|---|---|---|---|---|
expires |
Indica uma data de expiração específica. | Data no formato GMT. | Compatibilidade com navegadores antigos. | Depende do horário exato na máquina do cliente. |
max-age |
Indica o número de segundos até a expiração. | Número de segundos. | Não depende do horário exato. Mais flexível. Recomendado. | Pode não ser totalmente suportado em navegadores antigos. |
Além disso, as "cookies" também podem ser definidas no lado do servidor, por exemplo, usando o cabeçalho Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Aqui, Max-Age=259200 corresponde a 3 dias em segundos (3 * 24 * 60 * 60).