JWT-токеннинг ҳақиқий ва фаол эканлигини қандай текшириш мумкин?
sobes.tech AI
AIdan javob
JWT tokenining haqiqiyligini va faoliyatini tekshirish uchun bir nechta bosqichlarni bajarish kerak:
-
Imzo tekshiruvi: Maxfiy kalit (HMAC uchun) yoki jamoat kaliti (RSA/ECDSA uchun) yordamida token imzosining to'g'riligi va o'zgartirilmaganligini tekshiring.
-
Muddati tugashini tekshirish:
exp(tugash vaqti) vanbf(oldinroq emas) maydonlarini tekshirib, token muddati o'tmagan va hozir faol ekanligiga ishonch hosil qiling. -
Boshqa da'volar (claims) tekshiruvi: Masalan,
iss(chiqaruvchi),aud(auditoriya) — token sizning ilovangiz uchun mo'ljallanganligini ta'minlash uchun.
Python'da PyJWT kutubxonasi yordamida misol:
import jwt
from jwt import ExpiredSignatureError, InvalidTokenError
maxfiy = 'sizning-maxfiy- kalit'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
try:
payload = jwt.decode(token, maxfiy, algorithms=['HS256'], audience='sizning-auditoriya')
# Token haqiqiy va faol
print('Yuk:', payload)
except ExpiredSignatureError:
print('Token muddati o'tgan')
except InvalidTokenError:
print('Noto'g'ri token')
Shu tarzda, JWT ning haqiqiyligi imzo va muddati tekshirilganidan so'ng aniqlanadi, va faoliyat — tokenning hozirgi vaqt chegaralariga mos kelishi bilan belgilanadi.