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:
-
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.
-
Weryfikacja daty wygaśnięcia: Sprawdź pola
exp(czas wygaśnięcia) inbf(nie wcześniej), aby upewnić się, że token nie wygasł i jest już aktywny. -
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.