Junior
Jak ustawić pliki cookie, aby były usuwane po 3 dniach?
sobes.tech AI
Odpowiedź od AI
Aby ustawić "cookie" z wygasaniem za 3 dni, można użyć atrybutu expires lub max-age.
-
expires: Ustawia konkretną datę i godzinę wygaśnięcia. Data powinna być w formacie GMT (czas uniwersalny koordynowany).
-
max-age: Ustawia liczbę sekund, po których "cookie" wygaśnie, od momentu jej ustawienia. Jest to bardziej elastyczny i zalecany sposób.
Przykład w JavaScript z użyciem max-age:
// Uzyskujemy aktualny czas w milisekundach
const now = new Date().getTime();
// Obliczamy czas w milisekundach dla 3 dni
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Obliczamy czas wygaśnięcia w milisekundach
const expirationTime = now + threeDaysInMilliseconds;
// Tworzymy obiekt Date dla czasu wygaśnięcia
const expirationDate = new Date(expirationTime);
// Ustawiamy cookie z atrybutem expires, konwertując datę do formatu GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Lub używamy max-age (zalecane)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Dodatkowe atrybuty dla lepszych praktyk:
// secure - cookie jest wysyłane tylko przez HTTPS
// HttpOnly - cookie nie jest dostępne przez document.cookie (ochrona przed XSS)
// path - ścieżka, dla której cookie jest ważne
// domain - domena, dla której cookie jest ważne
// SameSite - zapobiega wysyłaniu cookie w żądaniach między witrynami (zalecane: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Porównanie expires i max-age:
| Atrybut | Opis | Format | Zalety | Wady |
|---|---|---|---|---|
expires |
Określa konkretną datę wygaśnięcia. | Data w formacie GMT. | Kompatybilne ze starszymi przeglądarkami. | Zależy od dokładnego czasu na maszynie klienta. |
max-age |
Określa liczbę sekund do wygaśnięcia. | Liczba sekund. | Nie zależy od czasu na maszynie klienta. Bardziej elastyczne. | Może nie być w pełni obsługiwane przez starsze przeglądarki. |
Cookies mogą być również ustawiane po stronie serwera, na przykład za pomocą nagłówka Set-Cookie.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Tutaj, Max-Age=259200 odpowiada 3 dniom w sekundach (3 * 24 * 60 * 60).