JWT — формат передачи набора claims. Подписанный токен в компактной JWS-форме обычно состоит из header, payload и signature, разделённых точками; он позволяет проверять целостность заявлений и их источник.
В обычном подписанном JWT секреты хранить нельзя: payload закодирован, но не зашифрован и читается владельцем токена. Подпись защищает целостность, а не конфиденциальность.
В обычном подписанном JWT payload читается без секретного ключа: Base64URL — не шифрование. Пароли, API-ключи и другие секреты туда помещать не следует.
Используйте проверенную JWT-библиотеку: сервер выпускает короткоживущий access token, API проверяет подпись, разрешённый алгоритм, issuer, audience и сроки действия. Декодирование без проверки недостаточно.
Stateless JWT проверяется без обращения к хранилищу сессий, но его сложно немедленно отозвать. Blacklist добавляет серверное состояние и проверку отзыва, увеличивая зависимость от хранилища.
Главные сложности JWT — отзыв до истечения срока, устаревшие claims, размер токена и риск неправильной проверки. Подписанный payload обычно открыт для чтения и не должен содержать секреты.
JWT содержит структурированные claims, а не просто случайный набор символов. В распространённом подписанном формате это header, payload и signature; кодирование payload не делает его секретным.
Stateless JWT проверяют по подписи и claims без обращения к хранилищу сессий. Stateful-подход добавляет проверку состояния, например списка отозванных jti или версии сессии.
JWT — формат передачи claims. Распространённый подписанный JWT состоит из header, payload и signature; подпись обеспечивает целостность, но не скрывает содержимое.
Обычно используют короткоживущий access token для API и refresh token для получения нового access token. При этом refresh token не обязан иметь формат JWT.
Timing attack использует зависимость времени сравнения от совпавшего префикса секретного значения. Константное по содержимому сравнение не прекращается на первом различии.
Недостатки JWT — сложность досрочного отзыва, устаревание claims, размер токена и риск ошибок проверки. Подписанный payload читаем, а кража bearer-токена позволяет действовать до его истечения или отзыва.