Co znamená JWT (JSON Web Token)?

JWT, neboli JSON Web Token, je otevřený standard pro bezpečnou a kompaktní výměnu informací mezi dvěma stranami. V praxi se nejčastěji používá pro autentizaci a autorizaci v moderních webových a mobilních aplikacích. Je to v podstatě digitálně podepsaný balíček dat ve formátu JSON, který jedna strana (typicky server) vydá druhé straně (klientovi) jako důkaz o její identitě a oprávněních.

Token se skládá ze tří částí oddělených tečkami: hlavičky, datové části (payload) a podpisu. Hlavička obsahuje metadata o tokenu, datová část nese samotné informace (např. ID uživatele, jeho roli, čas expirace) a podpis zaručuje, že obsah tokenu nebyl po cestě nikým změněn. Právě podpis je klíčový – je vytvořen pomocí tajného klíče, který zná pouze server, a jakákoliv změna v datech by podpis zneplatnila.

Hlavní výhodou JWT je, že umožňuje tzv. "stateless" (bezstavovou) autentizaci. Server si po přihlášení uživatele nemusí pamatovat jeho stav. Místo toho vydá JWT, který si klient uloží a přikládá ke každému dalšímu požadavku na chráněné zdroje. Server pak jen ověří platnost podpisu tokenu a na základě dat v něm obsažených požadavek zpracuje. Tento přístup výrazně zjednodušuje architekturu, zejména u distribuovaných systémů a mikroslužeb, kde by sdílení stavu mezi službami bylo komplikované.