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