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 - cross-site суроолордо кукинин жиберилишин алдын алат (сунушталат: 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 күнгө туура келет (секунда менен).