Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про PHP: jwt, authentication

Как работают JWT-токены и зачем они нужны?

Этот вопрос объясняет механизм работы JSON Web Tokens и их применение в аутентификации и обмене данными.

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

JWT-токены представляют собой компактный способ безопасной передачи информации между сторонами в формате JSON. Они состоят из трех частей: заголовка, полезной нагрузки и подписи. Токены нужны для stateless-аутентификации, когда серверу не нужно хранить сессию пользователя. После первоначальной аутентификации клиент отправляет JWT с каждым запросом, что позволяет серверу проверять подлинность без обращения к базе данных.

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

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

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

  1. Header (Заголовок)

    • Алгоритм подписи (HS256, RS256)

    • Тип токена (JWT)

  2. Payload (Полезная нагрузка)

    • Claims (утверждения) о пользователе

    • Данные: user_id, roles, expiration

    • Произвольные данные приложения

  3. Signature (Подпись)

    • Подпись для верификации отправителя

    • Гарантия целостности данных

Пример создания JWT в PHP:

use Firebase\JWT\JWT;

$payload = [
    'user_id' => 123,
    'email' => 'user@example.com',
    'exp' => time() + 3600 // expiration
];

$secretKey = 'your-secret-key';
$jwt = JWT::encode($payload, $secretKey, 'HS256');

Процесс аутентификации:

  • Клиент логинится, получает JWT

  • При последующих запросах отправляет токен в заголовке Authorization

  • Сервер проверяет подпись и expiration

  • Извлекает данные пользователя из payload

Преимущества:

  • Stateless - не требует хранения на сервере

  • Масштабируемость

  • Кросс-доменная совместимость

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • PHP

    PHP

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

#jwt

#authentication

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