<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://jak.mazovia.edu.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LMSSamira9054951</id>
	<title>Mazovia - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="https://jak.mazovia.edu.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LMSSamira9054951"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php/Specjalna:Wk%C5%82ad/LMSSamira9054951"/>
	<updated>2026-10-16T23:31:25Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=JWT_bez_kontroln%C3%AD_logiky:_kde_tokeny_ti%C5%A1e_selh%C3%A1vaj%C3%AD&amp;diff=860595</id>
		<title>JWT bez kontrolní logiky: kde tokeny tiše selhávají</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=JWT_bez_kontroln%C3%AD_logiky:_kde_tokeny_ti%C5%A1e_selh%C3%A1vaj%C3%AD&amp;diff=860595"/>
		<updated>2026-10-01T18:01:29Z</updated>

		<summary type="html">&lt;p&gt;LMSSamira9054951: Utworzono nową stronę &amp;quot;Začnete tím, že si nainstalujete TypeScript globálně nebo lokálně do projektu a vytvoříte konfigurační soubor tsconfig.json. V něm nastavíte cíl kompilace, povolíte přísné kontroly a určíte, kam se má výsledný JavaScript ukládat. Pro nový projekt je rozumné zapnout &amp;quot;strict&amp;quot;: true. Zpočátku to bolí, protože kompilátor hlásí i to, co jste dřív přehlíželi. Vyplatí se to ale vydržet: přísný režim vás naučí psát typy poř…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Začnete tím, že si nainstalujete TypeScript globálně nebo lokálně do projektu a vytvoříte konfigurační soubor tsconfig.json. V něm nastavíte cíl kompilace, povolíte přísné kontroly a určíte, kam se má výsledný JavaScript ukládat. Pro nový projekt je rozumné zapnout &amp;quot;strict&amp;quot;: true. Zpočátku to bolí, protože kompilátor hlásí i to, co jste dřív přehlíželi. Vyplatí se to ale vydržet: přísný režim vás naučí psát typy pořádně a předejde řadě problémů později.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější chyba je ukládat do store všechno, včetně stavu formuláře nebo otevřeného dialogu. Druhá je mutace stavu uvnitř reduceru, která se projeví až později. Třetí je obcházení Reduxu přímým voláním globální proměnné, čímž ztratíte veškerou výhodu dohledatelnosti. Pokud stav roste, rozdělte ho na menší reducery a kombinujte je. Až přestane být přehledný, není to důvod přidávat další knihovny, ale vrátit se k návrhu dat.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při ověřování si dejte pozor na časové posuny. Malá tolerance u exp a nbf je v pořádku, ale nesmí být v minutách. Stejně tak kontrolujte, že token nebyl použit před nbf. Odvolávání je slabina bezstavových tokenů: blacklist podle jti nebo krátká platnost s rotací refresh tokenů řeší většinu případů. Nikdy neposílejte token v URL, dostane se do logů a refererů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Napojení komponent na store patří co nejníž. Nespojujte celé stránky, když stačí jedna položka seznamu. Komponenta má dostat jen data, která opravdu vykresluje, a jen akce, které sama vyvolává. Přepočítávejte selektory, které vracejí nový objekt nebo pole, jinak se komponenta překresluje při každé změně store. Typický problém je také příliš mnoho akcí pro jednu uživatelskou činnost; sloučte je do jedné, která popíše celý záměr.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Struktura projektu se vyplatí řešit dřív, než napíšete dvacátou routu. Rozdělte kód na trasy, controllery a vrstvu pro přístup k datům. Jeden soubor s pěti sty řádky se nedá testovat ani rozumně upravovat. Konfiguraci a tajné klíče držte mimo zdrojový kód, ideálně v proměnných prostředí, a nikdy je necommitujte do repozitáře. Stejně tak si hlídejte, co posíláte klientovi: chybová odpověď nemá obsahovat stack trace ani interní detaily.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kdy se z pokrytí stává past Pokrytí přestává být užitečné ve chvíli, kdy se stane cílem místo nástroje. Typickým projevem je test, který zavolá funkci, ale nekontroluje výsledek. Nebo testy, které jen procházejí kód, aby zvýšily procento. Dalším varovným signálem je snaha dostat se na sto procent za každou cenu. Poslední procenta obvykle znamenají testy pro triviální gettery, obsluhu výjimek, které nikdy nenastanou, nebo mrtvý kód. Náklady rostou, přínos klesá.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Co hlídat při vydávání a ukládání Access token držte krátký, v řádu minut. Refresh token ukládejte jako serverovou relaci s možností odvolání, ne jako další JWT bez stavu. Do payloadu nepatří hesla, rodná čísla ani interní identifikátory, které nechcete ukázat. Pamatujte, že payload je jen base64, nikoli šifra. Pokud potřebujete skrýt obsah, použijte JWE, nebo raději držte citlivá data na serveru a do tokenu dejte pouze odkaz.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Implementaci naopak odhadujte až ve chvíli, kdy je analytika hotová a znáte rozsah. Tým pak pracuje s jasnými vstupy a může použít relativní odhady, například bodové nebo velikostní. Nezahrnujte do implementace práci, která patří analytice, a naopak. Pokud se během implementace objeví nové analytické otázky, není to selhání odhadu, ale signál, že analytická část nebyla dotažená. Řešte to jako samostatnou položku, ne jako „překvapení&amp;quot; uvnitř sprintu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základem je ověřit podpis přesně tím algoritmem, který očekáváte. Nikdy nenechávejte knihovnu, aby si algoritmus vybrala podle hlavičky alg z tokenu. Pokud aplikace podporuje HS256 i RS256, musíte dopředu rozhodnout, který použijete, a ostatní odmítnout. Zvlášť nebezpečná je kombinace, kdy se veřejný klíč z RS256 dá podstrčit jako HMAC secret. Vždy porovnávejte iss, aud a exp; token bez expirace je jen trvalý přístupový klíč v cizích rukou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktické pravidlo: pokud test neumí selhat při změně logiky, pravděpodobně nic neověřuje. Zkuste mutační testování na menším vzorku kódu. Rychle ukáže, které testy jsou jen dekorace. Pokud mutace přežijí, máte sice vysoké pokrytí, ale slabou sadu testů. To je přesně ten okamžik, kdy je lepší číslo ignorovat a věnovat se kvalitě assertions.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba je ukládání tokenu do localStorage a následné XSS. HttpOnly cookie s SameSite je bezpečnější, ale vyžaduje ochranu proti CSRF. Další častá chyba je zapomenutý aud při více službách: token vydaný pro jednu API projde i do druhé. Testujte negativní scénáře, ne jen šťastnou cestu. Podepište token klíčem, který umíte rotovat, a staré klíče nechte ověřovat jen po dobu platnosti vydaných tokenů.&lt;/div&gt;</summary>
		<author><name>LMSSamira9054951</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=U%C5%BCytkownik:LMSSamira9054951&amp;diff=860589</id>
		<title>Użytkownik:LMSSamira9054951</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=U%C5%BCytkownik:LMSSamira9054951&amp;diff=860589"/>
		<updated>2026-10-01T18:01:26Z</updated>

		<summary type="html">&lt;p&gt;LMSSamira9054951: Utworzono nową stronę &amp;quot;Váš průvodce dílnou i obývákem žije už dlouho. Sdílím zde, jak zvládnout domácnost bez stresu. Nejraději hledat cesty, jak si usnadnit život.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Váš průvodce dílnou i obývákem žije už dlouho. Sdílím zde, jak zvládnout domácnost bez stresu. Nejraději hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>LMSSamira9054951</name></author>
	</entry>
</feed>