Sobes.tech
Junior — Middle

Ինչպե՞ս կարող ենք ստուգել, արդյոք JWT-թոքենը վավեր է և ակտիվ է։

sobes.tech AI

Պատասխան AI-ից

JWT տոմենի վավերականությունն ու ակտիվությունը ստուգելու համար անհրաժեշտ է կատարել մի քանի քայլ:

  1. Կցման ստուգում: Օգտագործելով գաղտնի բանալին (HMAC-ի համար) կամ հանրային բանալին (RSA/ECDSA-ի համար), ստուգել, որ տոմենի ստորագրությունը ճիշտ է և չի փոխվել:

  2. Ավարտման ժամկետի ստուգում: Ստուգել exp (վերջնաժամկետ) և nbf (ոչ առաջ) դաշտերը, որպեսզի համոզվեք, որ տոմենը չի ավարտվել և արդեն ակտիվ է:

  3. Այլ պնդումների (claims) ստուգում: Օրինակ, iss (հատուկ), aud (լսող) — որպեսզի համոզվեք, որ տոմենը նախատեսված է ձեր հավելվածի համար:

Python-ում PyJWT գրադարանի օգտագործմամբ օրինակ:

import jwt
from jwt import ExpiredSignatureError, InvalidTokenError

գաղտնի = 'ձեր-գաղտնի- բանալին'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'

try:
    payload = jwt.decode(token, գաղտնի, algorithms=['HS256'], audience='ձեր-լսող')
    # Տոմենը վավեր և ակտիվ է
    print('Բեռնում:', payload)
except ExpiredSignatureError:
    print('Տոմենը ժամկետանց է')
except InvalidTokenError:
    print('Անվավեր տոմեն')

Այս կերպ, JWT-ի վավերականությունը որոշվում է ստորագրության և ժամկետների ստուգմամբ, իսկ ակտիվությունը՝ համապատասխանելով ընթացիկ ժամանակային սահմանափակումներին։