Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как работает авторизация на основе JWT-токенов?

Вопрос проверяет понимание структуры JWT, принципа подписи, способов проверки и механизма авторизации без серверного состояния.

Короткий ответ

JWT — это токен, который содержит данные о пользователе и подписан секретом или приватным ключом. Клиент отправляет токен в каждом запросе, сервер проверяет подпись и извлекает данные без обращения к базе. Токен может иметь срок жизни и дополнительные поля (роли, разрешения). Минус — при компрометации токена его сложно отозвать, если нет чёрных списков или короткого TTL. JWT удобен для микросервисов и stateless API.

Длинный ответ

JWT (JSON Web Token) — это компактный формат токена, который содержит полезные данные и криптографическую подпись.

1. Структура JWT

JWT состоит из трёх частей, разделённых точками:

  1. Header — метаданные (тип токена, алгоритм подписи).

  2. Payload — полезная нагрузка (claims: sub, exp, iat, role и др.).

  3. Signature — подпись.

Определение:
Claim — это пара ключ/значение, описывающая пользователя или токен.

Пример структуры:

JSON

{
  "sub": "123",
  "role": "admin",
  "exp": 1712345678
}

2. Как работает процесс

2.1. Создание токена

  • пользователь проходит аутентификацию (логин/пароль);

  • сервер формирует payload;

  • подписывает токен секретом (HS256) или приватным ключом (RS256);

  • возвращает токен клиенту.

2.2. Использование токена

Клиент отправляет токен в заголовке:

Authorization: Bearer <JWT>

2.3. Проверка на сервере

Сервер:

  1. декодирует заголовок и payload (это обычный Base64);

  2. проверяет подпись;

  3. проверяет срок действия (exp);

  4. извлекает данные о пользователе.

Серверу не нужно хранить сессии — авторизация stateless.

3. Проблемы JWT

3.1. Отзыв токена

JWT нельзя просто «удалить», как сессию. Решения:

  • короткий срок действия (5–15 минут);

  • refresh tokens;

  • чёрные списки (Redis).

3.2. Размер токена

Токен длинный → занимает место в каждом запросе.

3.3. Безопасность

  • нельзя хранить JWT в localStorage (уязвимость XSS);

  • Cookies с флагами HttpOnly и Secure — безопаснее.

4. Когда JWT полезен

  • микросервисы (stateless);

  • мобильные приложения;

  • SPA (React/Vue/Angular);

  • API без серверных сессий.

5. Вывод

JWT обеспечивает stateless-авторизацию, удобную для API и распределённых систем. При правильных сроках жизни и защите токена она безопасна и эффективна.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Networks

Ключевые слова

#jwt

#claim

#signature

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.