Sobes.tech
Junior

Как да настроя бисквитките така, че да се изтриват след 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 - предотвратява изпращането на бисквитки при междусайтови заявки (препоръчително: 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).