Junior — Middle
Ինչպե՞ս կարող ենք ստուգել, արդյոք JWT-թոքենը վավեր է և ակտիվ է։
sobes.tech AI
Պատասխան AI-ից
JWT տոմենի վավերականությունն ու ակտիվությունը ստուգելու համար անհրաժեշտ է կատարել մի քանի քայլ:
-
Կցման ստուգում: Օգտագործելով գաղտնի բանալին (HMAC-ի համար) կամ հանրային բանալին (RSA/ECDSA-ի համար), ստուգել, որ տոմենի ստորագրությունը ճիշտ է և չի փոխվել:
-
Ավարտման ժամկետի ստուգում: Ստուգել
exp(վերջնաժամկետ) ևnbf(ոչ առաջ) դաշտերը, որպեսզի համոզվեք, որ տոմենը չի ավարտվել և արդեն ակտիվ է: -
Այլ պնդումների (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-ի վավերականությունը որոշվում է ստորագրության և ժամկետների ստուգմամբ, իսկ ակտիվությունը՝ համապատասխանելով ընթացիկ ժամանակային սահմանափակումներին։