როგორ დავაყენოთ კუქი ბრაუზერში?
sobes.tech AI
პასუხი AI-სგან
Cookie-ს დაყენება ბრაუზერში შესაძლებელია რამდენიმე გზით.
-
HTTP-სათაურის
Set-Cookieგამოყენებით სერვერზე. ეს არის ძირითადი მეთოდი cookie-ს დაყენებისთვის, რომელიც ხდება სერვერის მხრიდან. სერვერი აგზავნის ბრაუზერს სათაურსSet-Cookie, რომელიც instructრირებს ბრაუზერს შეინახოს გარკვეული გასაღები-ფასი წყვილი.სერვერის HTTP-პასუხის მაგალითი:
HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly Set-Cookie: settings=theme=dark&lang=en; Path=/Set-Cookieსათაურის პარამეტრები:name=value: cookie-ს სახელი და მნიშვნელობა. აუცილებელი პარამეტრი.Expires=<თარიღი>: თარიღი და დრო, როდესაც cookie იწურება. თუ არ არის მითითებული, cookie არის სესიის და წაიშლება ბრაუზერის დახურვისას. თარიღის ფორმატი - RFC 1123.Max-Age=<წამები>: cookie-ს სიცოცხლის მაქსიმალური დრო წამებში. აქვს პრიორიტეტიExpires-ზე.Domain=<დომენი>: დომენი, რომლისთვისაც cookie ხელმისაწვდომია. ჩვეულებრივ - მიმდინარე დომენი (მაგრამ არა ქვედომენები).Path=<პуть>: სერვერზე გზა, რომლისთვისაც cookie ხელმისაწვდომია. ჩვეულებრივ - ძირითადი გზა/.Secure: ნიშანი, რომელიც მიუთითებს, რომ cookie უნდა გაიგზავნოს მხოლოდ HTTPS-ით.HttpOnly: ნიშანი, რომელიც მიუთითებს, რომ cookie არ არის ხელმისაწვდომი JavaScript-ითdocument.cookie-ის საშუალებით. იცავს XSS თავდასხმებისგან.SameSite=<მოდე>: მართავს cookie-ს გადაცემას კროსსაიტური მოთხოვნების დროს. შესაძლო მნიშვნელობები:Strict,Lax(ნაგულისხმევი),None.
-
JavaScript-ის გამოყენებით მომხმარებლის მხარეზე.
document.cookieობიექტის საშუალებით შესაძლებელია წაკითხვა, დაწერა და წაშლა cookie-ს.Cookie-ის დაწერა:
// მარტივი cookie-ის დაყენება document.cookie = "username=johndoe"; // cookie-ის დაყენება with expires, path, secure და SameSite=Lax const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 დღე document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Cookie-ის წაკითხვა:
// document.cookie აბრუნებს ყველა ხელმისაწვდომი cookie-ს სტრიქონს "key1=value1; key2=value2; ..." ფორმატში console.log(document.cookie);Cookie-ის წაშლა: Cookie-ის წასაშლელად საჭიროა მისი დაყენება წინა თარიღით.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // expires-ს უნდა ჰქონდეს წინა თარიღიმნიშვნელოვანია, რომ წაშლის დროს მიუთითოთ იგივე
pathდაdomainპარამეტრები (თუ იყო მითითებული), როგორც შექმნის დროს.SameSite-ის მნიშვნელობაც უნდა ემთხვეოდეს სწორად წაშლისთვის. -
მხარდამჭერი JavaScript ბიბლიოთეკების გამოყენებით. არსებობს ბიბლიოთეკები, რომლებიც ამარტივებს cookie-ს მუშაობას (მაგალითად,
js-cookie). ისინი უზრუნველყოფენ უფრო მოსახერხებელ API-ს cookie-ს დაყენებისა, მიღებისა და წაშლისთვის.მაგალითი
js-cookie-თან:// ბიბლიოთეკის ჩართვა // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // cookie-ის დაყენება Cookies.set('username', 'johndoe'); // cookie-ის დაყენება ოპციებით Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires - დღეებში // cookie-ის მიღება const username = Cookies.get('username'); // აბრუნებს 'johndoe' ან undefined const allCookies = Cookies.get(); // აბრუნებს ყველა cookie-ს ობიექტად // cookie-ის წაშლა Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // მიუთითეთ path, თუ იყო მითითებული