Sobes.tech
Junior

Ինչպես կարգավորել cookies-ները, որպեսզի նրանք ջնջվեն 3 օր անց?

sobes.tech AI

Պատասխան AI-ից

3 օր հետո մաքրելու համար "քուքի" տեղադրելու համար կարող եք օգտագործել expires կամ max-age հատկությունները:

  • expires: Կարգավորում է կոնկրետ ամսաթիվ և ժամկետ, երբ "քուքը" պետք է լրիվանա: Ամսաթիվը պետք է լինի GMT ձևաչափով:

  • max-age: Կարգավորում է վայրկյանների քանակը, որի ընթացքում "քուքը" պետք է լրիվանա, սկսած տեղադրման պահից: Սա ավելի ճկուն և խորհուրդ է տրվում:

JavaScript օրինակով max-age օգտագործելով:

// Ստանում ենք ընթացիկ ժամանակը միլիսեկունդներով
const now = new Date().getTime();

// Հաշվարկում ենք 3 օրվա ժամանակը միլիսեկունդներով
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Հաշվարկում ենք լրացման ժամանակը
const expirationTime = now + threeDaysInMilliseconds;

// Ստեղծում ենք Date օբյեկտ լրացման ժամանակի համար
const expirationDate = new Date(expirationTime);

// Տեղադրում ենք քուքը `expires` հատկությամբ, որը փոխարկված է GMT ձևաչափի
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Կամ օգտագործում ենք max-age (առաջարկվում է)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Ավելացնենք լրացուցիչ հատկություններ՝
// secure - քուքը ուղարկվում է միայն HTTPS-ով
// HttpOnly - քուքը հասանելի չէ document.cookie-ով (ապահովում XSS-ից պաշտպանություն)
// path - ճանապարհ, որի համար է գործում քուքը
// domain - դոմեն, որի համար է գործում քուքը
// SameSite - կանխում է քուքի ուղարկումը cross-site հարցումների ժամանակ (առաջարկվում է՝ Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

expires և max-age հատկությունների համեմատություն:

Արտահայտիչ Նկարագրություն Ֆորմատ Առավելություններ Թերություններ
expires Կոնկրետ ամսաթիվ, երբ քուքը լրանում է GMT ձևաչափով ամսաթիվ Համատեղելի է հին բրաուզերների հետ Զависում է հաճախորդի մեքենայի ժամանակից
max-age Սպասում է վայրկյանների քանակը Վայրկյանների թիվ Չի կախված ժամանակից Մեծամասամբ չի աջակցվում հին բրաուզերներում

Նույնպես, քուքը կարող է սահմանվել սերվերից, օրինակ, Set-Cookie գլխով:

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

Այստեղ Max-Age=259200 համապատասխանում է 3 օրերին վայրկյաններով (3 * 24 * 60 * 60):