Πώς μπορείτε να ελέγξετε αν ένα JWT token είναι πραγματικά έγκυρο και ενεργό;
sobes.tech AI
Απάντηση από AI
Για τον έλεγχο εγκυρότητας και δραστηριότητας ενός JWT token, πρέπει να ακολουθήσετε μερικά βήματα:
-
Έλεγχος υπογραφής: Χρησιμοποιώντας το μυστικό κλειδί (για HMAC) ή το δημόσιο κλειδί (για RSA/ECDSA), ελέγξτε ότι η υπογραφή του token είναι σωστή και δεν έχει τροποποιηθεί.
-
Έλεγχος χρόνου λήξης: Ελέγξτε τα πεδία
exp(χρόνος λήξης) καιnbf(όχι πριν από), για να βεβαιωθείτε ότι το token δεν έχει λήξει και είναι ήδη ενεργό. -
Έλεγχος άλλων claims: Για παράδειγμα,
iss(εκδότης),aud(ακροατήριο) — για να διασφαλίσετε ότι το token προορίζεται για την εφαρμογή σας.
Παράδειγμα σε Python με τη βιβλιοθήκη PyJWT:
import jwt
from jwt import ExpiredSignatureError, InvalidTokenError
μυστικό = 'το-μυστικό-σας'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
try:
payload = jwt.decode(token, μυστικό, algorithms=['HS256'], audience='η-ακροατήρια-σας')
# Το token είναι έγκυρο και ενεργό
print('Φόρτωση:', payload)
except ExpiredSignatureError:
print('Το token έχει λήξει')
except InvalidTokenError:
print('Μη έγκυρο token')
Έτσι, η εγκυρότητα του JWT καθορίζεται από τον έλεγχο της υπογραφής και των χρονικών περιορισμών, και η δραστηριότητα — από τη συμμόρφωση με τα τρέχοντα χρονικά όρια του token.