Junior
Kako podesiti kolačiće tako da se brišu nakon 3 dana?
sobes.tech АИ
Одговор од АИ
За постављање "колачића" са уклањањем за 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 - спречава слање колачића при међусайтовским захтевима (препоручљиво: 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).