Ответ
JWT (JSON Web Token) — это стандартизированный формат токена, который содержит закодированные данные (payload) в формате JSON. Он состоит из трех частей: заголовка (header), полезной нагрузки (payload) и подписи (signature), разделенных точками. JWT самодостаточен — сервер может проверить его валидность без обращения к БД.
Обычный токен (например, случайная строка) — это просто уникальный идентификатор, который хранится на сервере в БД. Для проверки сервер должен найти его в хранилище и сверить с запросом.
Пример JWT:
// Структура JWT
header.payload.signature
// Пример декодированного payload
{
"userId": 123,
"exp": 1625097600
}
Ключевые отличия:
- JWT содержит данные, обычный токен — нет
- JWT проверяется криптографически, обычный — через БД
- JWT не требует хранения на сервере (stateless)