HMAC z SHA-256. Wspólny klucz symetryczny. Polecane do ogólnego użytku.
Jak to działa
JSON Web Token (JWT) to zwięzły, podpisany token przenoszący informacje (claims) między dwiema stronami. Składa się z trzech części oddzielonych kropkami —nagłówka, ładunku i podpisu—, każda zakodowana w Base64URL.
W trybie Generuj definiujesz nagłówek i ładunek w JSON i podpisujesz tajnym kluczem (HMAC) lub kluczem prywatnym (RSA/ECDSA). W trybie Czytaj wklejasz istniejący token, aby sprawdzić jego treść i zweryfikować podpis.
Ładunek nie jest szyfrowany: każdy może go odczytać, dekodując Base64URL. Podpis gwarantuje tylko, że token nie został zmieniony, nie ukrywa go. Nigdy nie umieszczaj wrażliwych danych w JWT.
Przykłady
header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cPodpis (trzecia część) zależy od algorytmu i klucza; ten przykład używa HS256 z kluczem "your-256-bit-secret".Przypadki użycia
- Uwierzytelniać użytkowników w API: serwer wystawia podpisany token i weryfikuje go przy każdym żądaniu bez przechowywania sesji.
- Sprawdzać i debugować tokeny uwierzytelniania, aby zobaczyć ich claimy (sub, exp, role) i daty.
- Zweryfikować podpis tokenu za pomocą tajnego klucza lub klucza publicznego, aby potwierdzić, że nie został zmanipulowany.
- Generować testowe tokeny z różnymi algorytmami (HMAC, RSA, ECDSA) podczas tworzenia przepływu uwierzytelniania.
Najczęstsze pytania
Czy zawartość JWT jest szyfrowana?
Nie. Nagłówek i ładunek są tylko zakodowane w Base64URL, co każdy może zdekodować. Podpis gwarantuje integralność (że nie zmieniono), nie poufność.
Jaka jest różnica między HS256 a RS256?
HS256 używa jednego wspólnego tajnego klucza do podpisywania i weryfikacji (HMAC). RS256 jest asymetryczny: podpisuje kluczem prywatnym i weryfikuje publicznym, idealny, gdy wiele usług musi weryfikować bez możliwości wystawiania.
Co oznaczają claimy iat, exp i nbf?
To standardowe znaczniki czasu: iat (wystawiono o), exp (wygasa o) i nbf (nieważny przed). Wyrażane są w sekundach od 1970 (epoka Unix).
Dlaczego odradza się algorytm "none"?
Ponieważ tworzy token bez podpisu: każdy może zmienić ładunek, a token nadal będzie akceptowany. Przydaje się tylko do testów, nigdy w produkcji.
Czy mój token jest wysyłany na serwer?
Nie. Generowanie, dekodowanie i weryfikacja odbywają się w całości w przeglądarce; token i klucze nigdy nie opuszczają Twojego urządzenia.