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