В чем разница между JWT Token и Token

«В чем разница между JWT Token и Token» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JWT (JSON Web Token) — это стандартизированный формат токена, который содержит закодированные данные (payload) в формате JSON. Он состоит из трех частей: заголовка (header), полезной нагрузки (payload) и подписи (signature), разделенных точками. JWT самодостаточен — сервер может проверить его валидность без обращения к БД.

Обычный токен (например, случайная строка) — это просто уникальный идентификатор, который хранится на сервере в БД. Для проверки сервер должен найти его в хранилище и сверить с запросом.

Пример JWT:

// Структура JWT
header.payload.signature

// Пример декодированного payload
{
  "userId": 123,
  "exp": 1625097600
}

Ключевые отличия:

  • JWT содержит данные, обычный токен — нет
  • JWT проверяется криптографически, обычный — через БД
  • JWT не требует хранения на сервере (stateless)