Budowa tokenu JWT: Co kryje się w środku?
Token JWT (JSON Web Token) na pierwszy rzut oka wygląda jak losowy ciąg znaków. W rzeczywistości ma on bardzo konkretną strukturę, składającą się z trzech części oddzielonych kropkami: nagłówek.ładunek.sygnatura. Każda z tych części jest zakodowana przy użyciu Base64URL, wariantu kodowania Base64 bezpiecznego dla adresów URL. Nasz Dekoder JWT pozwala zajrzeć do wnętrza dwóch pierwszych części bez potrzeby znajomości tajnego klucza.
- Nagłówek (Header): To pierwsza część tokenu. Jest to obiekt JSON, który zawiera metadane o samym tokenie. Zazwyczaj znajdziemy tu dwie kluczowe informacje:
typ(typ tokenu, prawie zawsze „JWT”) orazalg(algorytm użyty do wygenerowania sygnatury, np.HS256lubRS256). Nagłówek informuje serwer, jak powinien zweryfikować autentyczność tokenu. - Ładunek (Payload): Druga część, również będąca obiektem JSON. To serce tokenu, w którym przechowywane są tzw. „claims” (oświadczenia). Są to informacje o użytkowniku (np. jego ID, rola) oraz dodatkowe metadane, takie jak data wygaśnięcia tokenu (
exp) czy jego wystawca (iss). To właśnie zawartość ładunku jest najczęściej analizowana podczas debugowania. - Sygnatura (Signature): Ostatnia część, która służy do weryfikacji integralności tokenu. Jest tworzona przez połączenie zakodowanego nagłówka, zakodowanego ładunku, tajnego klucza (w przypadku algorytmów symetrycznych jak HS256) lub klucza prywatnego (dla algorytmów asymetrycznych jak RS256) i przepuszczenie całości przez wybrany algorytm haszujący. Dekodowanie nie wymaga sygnatury, ale jej weryfikacja jest kluczowa dla bezpieczeństwa. Możesz dowiedzieć się więcej o kodowaniu Base64, korzystając z naszego narzędzia do dekodowania Base64.