Sobes.tech
Junior

Kaip nustatyti slapukus, kad jie būtų ištrinti po 3 dienų?

sobes.tech AI

Atsakymas iš AI

Norint nustatyti "slapuką" su ištrynimu po 3 dienų, galite naudoti atributus expires arba max-age.

  • expires: Nustato konkrečią datą ir laiką, kada "slapukas" turi pasibaigti. Data turi būti GMT formatu.

  • max-age: Nustato sekundžių skaičių, po kurio "slapukas" turi pasibaigti, pradedant nuo jo nustatymo momento. Tai yra lankstesnis ir rekomenduojamas būdas.

Pavyzdys JavaScript'e naudojant max-age:

// Gauname dabartinį laiką milisekundėmis
const now = new Date().getTime();

// Apskaičiuojame laiką po 3 dienų milisekundėmis
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Apskaičiuojame pasibaigimo laiką
const expirationTime = now + threeDaysInMilliseconds;

// Sukuriame Date objektą pasibaigimo laikui
const expirationDate = new Date(expirationTime);

// Nustatome slapuką su `expires` atributu, konvertuotu į GMT formatą
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Arba naudojame `max-age` (rekomenduojama)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Papildomi atributai geresnei praktikai:
// secure - slapukas siunčiamas tik per HTTPS
// HttpOnly - slapukas nėra pasiekiamas per document.cookie (apsauga nuo XSS)
// path - kelias, kuriame galioja slapukas
// domain - domenas, kuriam galioja slapukas
// SameSite - apsaugo nuo slapuko siuntimo per cross-site užklausas (rekomenduojama: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

Lyginant expires ir max-age:

Atributas Aprašymas Formatą Privalumai Trūkumai
expires Nurodo konkrečią pasibaigimo datą GMT formato data Suderinama su senesnėmis naršyklėmis Priklauso nuo kliento laikrodžio tikslumo
max-age Nurodo sekundžių skaičių iki pasibaigimo Sekundės Nėra priklausomas nuo laiko tikslumo Gali būti nepalaikomas senesnėse naršyklėse

Taip pat "slapukai" gali būti nustatyti serveryje, pvz., naudojant Set-Cookie antraštę:

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

Čia Max-Age=259200 atitinka 3 dienas sekundėmis (3 * 24 * 60 * 60).