Назад к вопросам
VK
Junior — Middle
52
Какими методами Backend проверяет подделку JWT-токена?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Backend проверяет подлинность JWT-токена следующими способами:
-
Проверка подписи токена — сервер использует секретный ключ (для HMAC) или публичный ключ (для RSA/ECDSA) для проверки цифровой подписи токена. Если подпись не совпадает, токен подделан.
-
Проверка срока действия (exp) — сервер проверяет, не истёк ли срок действия токена.
-
Проверка других стандартных полей (claims) — например, issuer (iss), audience (aud), чтобы убедиться, что токен выдан доверенным источником и предназначен для данного сервиса.
Пример проверки JWT на Python с библиотекой PyJWT:
import jwt
from jwt import InvalidTokenError
SECRET_KEY = 'your-secret-key'
def verify_jwt(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=['HS256'], options={"verify_exp": True})
# Дополнительные проверки payload['iss'], payload['aud'] при необходимости
return payload
except InvalidTokenError:
return None
Если decode прошёл успешно, токен считается подлинным и не подделанным.