Sobes.tech
Back to questions
Junior — Middle
53

Какими методами Backend проверяет подделку JWT-токена?

Companies where asked
VKVK

Answer from AI

sobes.tech AI

Backend проверяет подлинность JWT-токена следующими способами:

  1. Проверка подписи токена — сервер использует секретный ключ (для HMAC) или публичный ключ (для RSA/ECDSA) для проверки цифровой подписи токена. Если подпись не совпадает, токен подделан.

  2. Проверка срока действия (exp) — сервер проверяет, не истёк ли срок действия токена.

  3. Проверка других стандартных полей (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 прошёл успешно, токен считается подлинным и не подделанным.