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 - пешгирӣ аз ирсол кардани куки дар дархостҳои байнисайтовӣ (тавсияшаванда: 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) мувофиқат мекунад.