Как можете да проверите дали един 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:', payload)
except ExpiredSignatureError:
print('Токенът е изтекъл')
except InvalidTokenError:
print('Невалиден токен')
По този начин, валидността на JWT се определя чрез проверка на подписа и сроковете на валидност, а активността — чрез съответствие с текущите времеви ограничения на токена.