Jak nastavit cookies v prohlížeči?
sobes.tech AI
Odpověď od AI
Ukládání cookie v prohlížeči lze provést několika způsoby.
-
Pomocí HTTP hlavičky
Set-Cookieze serveru. Toto je hlavní metoda pro nastavení cookie, která se provádí na straně serveru. Server pošle prohlížeči hlavičkuSet-Cookie, která instructs prohlížeč, aby si uložit určitou dvojici klíč-hodnota.Příklad odpovědi HTTP ze serveru:
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=/Parametry hlavičky
Set-Cookie:name=value: Jméno a hodnota cookie. Povinné.Expires=<datum>: Datum a čas expirace cookie. Pokud není uvedeno, je cookie relace a smaže se při zavření prohlížeče. Formát data RFC 1123.Max-Age=<sekundy>: Maximální doba života cookie v sekundách. Má přednost předExpires.Domain=<doména>: Doména, pro kterou je cookie dostupná. Výchozí je aktuální doména (ale ne poddomény).Path=<cesta>: Cesta na serveru, pro kterou je cookie dostupná. Výchozí je kořenová cesta/.Secure: Příznak, který označuje, že cookie má být odesílána pouze přes HTTPS.HttpOnly: Příznak, který označuje, že cookie není přístupná přes JavaScriptdocument.cookie. Chrání před XSS útoky.SameSite=<mód>: Řídí odesílání cookie při cross-site požadavcích. Možné hodnoty:Strict,Lax(výchozí),None.
-
Pomocí JavaScriptu na straně klienta. Pomocí objektu
document.cookielze číst, zapisovat a mazat cookie.Zápis cookie:
// Nastavení jednoduché cookie document.cookie = "username=johndoe"; // Nastavení cookie s expires, path, secure a SameSite=Lax const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 dní document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Čtení cookie:
// `document.cookie` vrací řetězec všech dostupných cookie ve formátu "key1=value1; key2=value2; ..." console.log(document.cookie);Mazání cookie: Pro odstranění cookie je třeba nastavit její datum expirace do minulosti.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // nastavit expires do minulostiPři mazání je důležité uvést stejné parametry
pathadomain(pokud byly nastaveny), jako při vytváření.SameSitemusí také odpovídat pro správné odstranění. -
Pomocí externích JavaScript knihoven. Existují knihovny, které usnadňují práci s cookie (například
js-cookie). Ty poskytují jednodušší API pro nastavování, získávání a mazání cookie.Příklad s
js-cookie:// Připojení knihovny // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Nastavení cookie Cookies.set('username', 'johndoe'); // Nastavení cookie s volbami Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires v dnech // Získání cookie const username = Cookies.get('username'); // Vrací 'johndoe' nebo undefined const allCookies = Cookies.get(); // Vrací objekt se všemi cookie // Odstranění cookie Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // Uvést path, pokud byl při nastavování