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) мувофиқат мекунад.