Przejdź do treści głównej
FreeOnlineTools Go
Polski
Wyjaśnienie

Co to jest JWT? Pełne wyjaśnienie tokenów internetowych JSON

Autor: FreeOnlineTools Team · Zaktualizowano 2026-09-02

Szybka odpowiedź

JWT to ciąg z trzema częściami zakodowanymi Base64URL oddzielonymi kropkami: header.payload.signature. Header określa algorytm, payload zawiera claims (user ID, roles, expiration), a signature udowadnia autentyczność. Użyj naszego darmowego JWT Decoder aby inspectować zawartość tokenu.

Wstęp

JWT (JSON Web Token) to kompaktowy, URL-safe format tokenu zdefiniowany przez RFC 7519 do bezpiecznej transmisji informacji między stronami jako obiekt JSON. JWTy są powszechnie używane do autentykacji w web aplikacjach: po loginie server wydaje JWT, który klient dołącza do kolejnych żądań. JWTy są stateless —server nie musi lookup tokenu w bazie; token sam zawiera claims i signature.

Krok po kroku

  1. Zrozumienie trzyczęściowej struktury

    JWT składa się z trzech części: nagłówka (algorytm i typ), ładunku (oświadczenia) i podpisu (dowodzi integralności). Każda część jest zakodowana w formacie Base64URL i oddzielona kropkami: eyJhbGciOi...J9.eyJzdWIi...J9.signature. Pierwsze dwie części są czytelne dla każdego, kto posiada token; jedynie podpis wymaga tajnego klucza.

  2. Poznaj standardowe twierdzenia

    Ładunek zawiera oświadczenia — stwierdzenia na dany temat. Standardowe oświadczenia: „sub” (identyfikator podmiotu/użytkownika), „iat” (wydany w momencie sygnatury czasowej), „exp” (wygaśnięcie), „nbf” (nie wcześniej), „iss” (wystawca), „aud” (odbiorcy). Oświadczenia niestandardowe mogą obejmować role, uprawnienia lub dowolne inne dane.

  3. Zrozumienie algorytmów podpisywania

    JWT używają podpisu symetrycznego (HS256 — wspólny sekret) lub asymetrycznego (RS256, ES256 — para kluczy publiczny/prywatny). Podpis zapobiega manipulacji: zmiana jakiejkolwiek części tokena unieważnia podpis. Tylko posiadacz tajnego/prywatnego klucza może tworzyć ważne tokeny.

  4. Użyj tokenów JWT do uwierzytelniania

    Po zalogowaniu serwer tworzy JWT i wysyła go do klienta. Klient dołącza JWT w nagłówku autoryzacji (token nośnika) dla kolejnych żądań. Serwer weryfikuje podpis i sprawdza datę ważności — nie jest potrzebne przeszukiwanie bazy danych.

Przykłady

__ZACHOWAJ_18__ strukturę

Wejście: Typowy JWT

Wyjście: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSIsImV4cCI6MTY5MzYxMjgwMH0.signature

Zdekodowany nagłówek

Wejście: Pierwsza część rozszyfrowana

Wyjście: {"alg": "HS256", "typ": "JWT"}

Zdekodowany ładunek

Wejście: Część druga rozszyfrowana

Wyjście: {"sub": "user1", "name": "Alice", "iat": 1693526400, "exp": 1693612800}

Typowe problemy

  • Dekodowanie a weryfikacja — dekodowanie JWT (czytanie jego zawartości) NIE dowodzi, że jest on autentyczny. Zawsze sprawdzaj podpis po stronie serwera za pomocą tajnego klucza, zanim zaufasz oświadczeniom.
  • Przechowywanie JWT w localStorage — dzięki temu są one dostępne dla JavaScript i podatne na ataki XSS. Przechowuj w plikach cookie httpOnly dla większego bezpieczeństwa.
  • Tokeny długowieczne — jeśli token zostanie skradziony, pozostaje on ważny aż do wygaśnięcia. Używaj krótkotrwałych tokenów dostępu (15–60 min) z tokenami odświeżania w przypadku długich sesji.
  • Wrażliwe dane w ładunku — ładunek może zostać odczytany przez każdą osobę posiadającą token (jest to Base64, nie jest szyfrowany). Nigdy nie umieszczaj haseł, kart kredytowych ani sekretów w ładunku.

Porady

  • Zawsze sprawdzaj podpis JWT po stronie serwera, zanim zaufasz jakimkolwiek twierdzeniom — samo dekodowanie nie jest uwierzytelnieniem.
  • Używaj krótkotrwałych tokenów dostępu (15–60 minut) z tokenami odświeżania w przypadku długich sesji, aby zminimalizować szkody wynikające z kradzieży tokenów.
  • Przechowuj JWT w plikach cookie httpOnly, Secure, SameSite zamiast localStorage, aby zapobiec atakom XSS.
  • Skorzystaj z naszego dekodera JWT, aby sprawdzić zawartość tokena w celu debugowania — Twój token nigdy nie opuszcza przeglądarki.

Powiązane narzędzia

Powiązane przewodniki

Referencje