Generator JWT
Twórz podpisane tokeny JWT z niestandardowym nagłówkiem, ładunkiem i kluczem. Obsługa HS256, RS256, ES256.
Co to jest JWT?
JWT (JSON Web Token, RFC 7519) to otwarty standard do bezpiecznego przesyłania informacji jako kompaktowy obiekt JSON. Składa się z trzech części oddzielonych kropkami: Header.Payload.Signature.
Jakie są typowe zastosowania JWT?
JWT jest szeroko stosowany do uwierzytelniania (single sign-on), autoryzacji API i bezpiecznej wymiany informacji. Po zalogowaniu serwer wydaje JWT, który klient dołącza do kolejnych żądań.
Jak wybrać między HS256, RS256 i ES256?
HS256 używa wspólnego sekretu i jest najszybszy, odpowiedni dla pojedynczych usług. RS256 używa par kluczy RSA, lepszy dla architektury wielousługowej. ES256 używa kluczy eliptycznych z krótszymi podpisami i wysokim bezpieczeństwem.
Czym są claims w JWT?
Claims to oświadczenia w payloadzie. Zarejestrowane claims obejmują iss (wydawca), sub (temat), exp (wygaśnięcie), aud (odbiorca). Publiczne claims można zarejestrować w IANA. Prywatne to niestandardowe pola ustalone między stronami.
Jak zweryfikować JWT?
Zdekoduj header aby uzyskać algorytm, następnie użyj odpowiedniego klucza (wspólny sekret dla HMAC, klucz publiczny dla RSA/ECDSA) do weryfikacji podpisu. Sprawdź także exp, iss i aud.
Czy generowanie JWT w przeglądarce jest bezpieczne?
Tak, to narzędzie używa Web Crypto API. Twoje klucze i tokeny nigdy nie opuszczają przeglądarki. Żadne dane nie są wysyłane na serwery.
Jaka jest różnica między kodowaniem a podpisywaniem?
Kodowanie (Base64) tylko konwertuje dane do formatu przesyłalnego i jest odwracalne przez każdego. Podpisywanie tworzy hash kryptograficzny potwierdzający, że token nie został zmieniony.
Czy JWT można zaszyfrować?
Tak, JWE (JSON Web Encryption) szyfruje zawartość payloadu. Standardowy JWT (JWS) gwarantuje tylko integralność, ale payload jest czytelny dla każdego posiadacza tokena.
Jakie są najlepsze praktyki bezpieczeństwa JWT?
Zawsze ustawiaj krótkie czasy wygaśnięcia. Używaj silnych, losowych sekretów dla HMAC. Przechowuj klucze prywatne bezpiecznie. Nie umieszczaj danych wrażliwych w payloadzie. Używaj HTTPS w produkcji.
Jak JWT ma się do uwierzytelniania opartego na sesjach?
JWT jest bezstanowy — serwer nie przechowuje danych sesji, idealny dla mikroserwisów i scenariuszy między domenami. Sesje wymagają przechowywania po stronie serwera, ale pozwalają na natychmiastowe unieważnienie.
Czy JWT nadaje się do wylogowania i zarządzania sesjami?
JWT jest bezstanowy z założenia, więc wylogowanie wymaga dodatkowych mechanizmów jak blacklisty lub krótkotrwałe tokeny z tokenami odświeżania. Używaj krótkotrwałych tokenów dostępu (np. 15 minut).
Jak działa wzorzec refresh token z JWT?
Używaj krótkotrwałego tokena dostępu (JWT) do wywołań API i dłuższego tokena odświeżania do uzyskiwania nowych tokenów. Gdy token dostępowy wygaśnie, klient wysyła refresh token aby otrzymać nowy JWT.
Co to jest algorytm "none"?
Algorytm "none" oznacza, że JWT nie jest podpisany. Używaj tylko do testów. Wiele bibliotek domyślnie go wyłącza ze względów bezpieczeństwa.
Czy istnieją ograniczenia rozmiaru JWT?
JWT nie ma stałego limitu rozmiaru, ale ponieważ jest wysyłany w nagłówkach HTTP, powinien pozostać poniżej 4KB. Minimalizuj payload.