Как да настроите бисквитки в браузъра?
sobes.tech AI
Отговор от AI
Настройването на бисквитки в браузъра може да стане по няколко начина.
-
Чрез HTTP заглавие
Set-Cookieот сървъра. Това е основният метод за настройка на бисквитки, който се извършва от сървъра. Сървърът изпраща към браузъра заглавиеSet-Cookie, което instructs браузъра да запази определена двойка ключ-стойност.Пример за 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: Име и стойност на бисквитката. Задължително.Expires=<дата>: Дата и час на изтичане на бисквитката. Ако не е посочена, бисквитката е сесийна и се изтрива при затваряне на браузъра. Форматът на датата е RFC 1123.Max-Age=<секунди>: Максимално време на живот на бисквитката в секунди. Има приоритет предExpires.Domain=<домейн>: Домейнът, за който е достъпна бисквитката. По подразбиране - текущият домейн (но не и поддомейните).Path=<път>: Път на сървъра, за който е достъпна бисквитката. По подразбиране - кореновият път/.Secure: Флаг, който указва, че бисквитката трябва да се изпраща само по HTTPS.HttpOnly: Флаг, който указва, че бисквитката не е достъпна за JavaScript чрезdocument.cookie. Защитава от XSS атаки.SameSite=<режим>: Управлява изпращането на бисквитки при кросс-сайтови заявки. Възможни стойности:Strict,Lax(по подразбиране),None.
-
Чрез JavaScript на клиента. С помощта на обекта
document.cookieможе да се чете, записва и изтрива бисквитки.Записване на бисквитка:
// Настройване на проста бисквитка document.cookie = "username=johndoe"; // Настройване на бисквитка с 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`;Четене на бисквитка:
// `document.cookie` връща низ с всички налични бисквитки във формат "key1=value1; key2=value2; ..." console.log(document.cookie);Изтриване на бисквитка: За да изтриете бисквитка, трябва да зададете датата й на изтичане в миналото.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // задаване на expires в миналотоВажно е при изтриване да се посочат същите параметри
pathиdomain(ако са били зададени), както при създаването.SameSiteсъщо трябва да съвпада за правилното изтриване. -
Чрез външни JavaScript библиотеки. Съществуват библиотеки, които улесняват работата с бисквитки (например,
js-cookie). Те предоставят по-удобен API за настройка, четене и изтриване на бисквитки.Пример с
js-cookie:// Включване на библиотеката // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Настройване на бисквитка Cookies.set('username', 'johndoe'); // Настройване на бисквитка с опции Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires в дни // Четене на бисквитка const username = Cookies.get('username'); // Връща 'johndoe' или undefined const allCookies = Cookies.get(); // Връща обект с всички бисквитки // Изтриване на бисквитка Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // Посочете пътя, ако е бил при настройката