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 се определя чрез проверка на подписа и сроковете на валидност, а активността — чрез съответствие с текущите времеви ограничения на токена.