В чем разница между токеном и JWT-токеном?
DOM и браузер
Токен — это общее понятие (любая строка-удостоверение доступа), а JWT — конкретный формат самодостаточного подписанного токена. JWT — один из видов токенов.
Токен (общее понятие)
Строка, которую клиент предъявляет для доступа. Виды:
- Opaque token — непрозрачная случайная строка; сервер хранит связанные с ней данные и проверяет по своей базе.
token = "a1b2c3d4..." → сервер ищет в БД → находит пользователя- JWT — самодостаточный токен с данными внутри.
JWT (JSON Web Token)
Конкретный формат: header.payload.signature (Base64URL), подписанный:
eyJhbGc... . eyJzdWIi... . SflKxw...- Данные (claims) внутри токена.
- Сервер проверяет подпись, не обращаясь к БД (stateless).
- Payload читаем (не шифрование) — секреты не кладут.
Различия
- JWT — самодостаточный, stateless (сервер не хранит), содержит данные, проверяется подписью.
- Opaque token — просто идентификатор, stateful (сервер хранит данные), проверяется по базе.
- Opaque token — Данные: на сервере; Проверка: запрос в БД; Состояние: stateful; Отзыв: легко
- JWT — Данные: в токене; Проверка: подпись; Состояние: stateless; Отзыв: сложнее
Коротко для собеседования
Токен — общее понятие (любая строка доступа); JWT — конкретный формат самодостаточного подписанного токена (header.payload.signature) с данными внутри и stateless-проверкой по подписи. Opaque token — просто идентификатор, данные на сервере (stateful), легко отзывается. JWT — один из видов токенов.