Sobes.tech
Junior

Hoe stel ik cookies in zodat ze na 3 dagen worden verwijderd?

sobes.tech AI

Antwoord van AI

Om een "cookie" in te stellen die over 3 dagen wordt verwijderd, kun je het attribuut expires of max-age gebruiken.

  • expires: Stelt een specifieke vervaldatum en tijd in. De datum moet in GMT-formaat zijn.

  • max-age: Stelt het aantal seconden in waarna de "cookie" moet verlopen, vanaf het moment van aanmaken. Dit is een flexibelere en aanbevolen methode.

Voorbeeld in JavaScript met max-age:

// Huidige tijd in milliseconden krijgen
const now = new Date().getTime();

// Tijd in milliseconden voor 3 dagen berekenen
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Vervaltijd in milliseconden berekenen
const expirationTime = now + threeDaysInMilliseconds;

// Date-object maken voor de vervaltijd
const expirationDate = new Date(expirationTime);

// Cookie instellen met het attribuut expires, datum converteren naar GMT-formaat
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Of gebruik max-age (aanbevolen)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Extra attributen voor beste praktijken:
// secure - cookie wordt alleen via HTTPS verzonden
// HttpOnly - cookie is niet toegankelijk via document.cookie (bescherming tegen XSS)
// path - pad waarop de cookie geldig is
// domain - domein waarop de cookie geldig is
// SameSite - voorkomt dat de cookie wordt verzonden bij cross-site verzoeken (aanbevolen: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

Vergelijking tussen expires en max-age:

Attribuut Beschrijving Formaat Voordelen Nadelen
expires Geeft een specifieke vervaldatum aan. Datum in GMT-formaat. Compatibel met oudere browsers. Afhankelijk van de exacte tijd op de clientmachine.
max-age Geeft het aantal seconden tot vervaldatum aan. Aantal seconden. Afhankelijk van de exacte tijd niet. Meer flexibel. Aanbevolen. Kan niet volledig ondersteund worden door oudere browsers.

Cookies kunnen ook server-side worden ingesteld, bijvoorbeeld met de Set-Cookie header.

Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax

Hier komt Max-Age=259200 overeen met 3 dagen in seconden (3 * 24 * 60 * 60).