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:', payload)
except ExpiredSignatureError:
    print('ტოკენი ამოიწურა')
except InvalidTokenError:
    print('არასწორი ტოკენი')

ამ გზით, JWT-ის ვალიდურობა განსაზღვრება ხელმოწერის და ვადის შემოწმებით, ხოლო აქტივობა — მიმდინარე დროის შეზღუდვებთან შესაბამისობით.