Sobes.tech
Junior — Middle

Πώς μπορείτε να ελέγξετε αν ένα JWT token είναι πραγματικά έγκυρο και ενεργό;

sobes.tech AI

Απάντηση από AI

Για τον έλεγχο εγκυρότητας και δραστηριότητας ενός JWT token, πρέπει να ακολουθήσετε μερικά βήματα:

  1. Έλεγχος υπογραφής: Χρησιμοποιώντας το μυστικό κλειδί (για HMAC) ή το δημόσιο κλειδί (για RSA/ECDSA), ελέγξτε ότι η υπογραφή του token είναι σωστή και δεν έχει τροποποιηθεί.

  2. Έλεγχος χρόνου λήξης: Ελέγξτε τα πεδία exp (χρόνος λήξης) και nbf (όχι πριν από), για να βεβαιωθείτε ότι το token δεν έχει λήξει και είναι ήδη ενεργό.

  3. Έλεγχος άλλων 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.