Sobes.tech
Junior — Middle

Jak można sprawdzić, czy token JWT jest ważny i aktywny?

sobes.tech AI

Odpowiedź od AI

Aby sprawdzić ważność i aktywność tokenu JWT, należy wykonać kilka kroków:

  1. Weryfikacja podpisu: Używając klucza tajnego (dla HMAC) lub klucza publicznego (dla RSA/ECDSA), sprawdź, czy podpis tokenu jest poprawny i nie został zmieniony.

  2. Weryfikacja daty wygaśnięcia: Sprawdź pola exp (czas wygaśnięcia) i nbf (nie wcześniej), aby upewnić się, że token nie wygasł i jest już aktywny.

  3. Weryfikacja innych twierdzeń (claims): Na przykład, iss (wydawca), aud (odbiorca) — aby upewnić się, że token jest przeznaczony dla Twojej aplikacji.

Przykład w Pythonie z użyciem biblioteki PyJWT:

import jwt
from jwt import ExpiredSignatureError, InvalidTokenError

sekret = 'twój-sekretny-klucz'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'

try:
    payload = jwt.decode(token, sekret, algorithms=['HS256'], audience='twoja-audiencja')
    # Token jest ważny i aktywny
    print('Ładunek:', payload)
except ExpiredSignatureError:
    print('Token wygasł')
except InvalidTokenError:
    print('Nieprawidłowy token')

W ten sposób ważność JWT jest określana przez sprawdzenie podpisu i czasów ważności, a aktywność — przez zgodność z aktualnymi ograniczeniami czasowymi tokenu.