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