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