Перейти к содержанию

JWT — Json Web Token

JWT — стандартный (RFC 7519) формат токена для передачи требований. Используется при передаче через строку запроса (query string) URL или HTTP заголовок Authorization. Формат подразумевает использование электронной подписи и/или шифрования содержимого.

Структура

JWT состоит из трёх частей, каждая из которых представляет собой закодированную в Base64 строку. Каждая часть отделена от других точками. Каждую часть возможно декодировать и прочитать.
Первая часть — заголовочная. Выглядит примерно так:

{
    "alg": "HS256",
    "typ": "JWT"
}

В этом примере в заголовке указан тип токена — JWT и алгоритм защиты — HMAC-SHA256.
Вторая часть — полезная нагрузка (payload). В ней указываются клеймы, которые мы хотим передать, в формате “ключ-значение”. Крайне упрощённый пример:
{
    "sub": "1234567890",
    "name": "John Smith",
    "iat": 1516239022
}

Третья часть — подпись (появляется, если в заголовке указан алгоритм, отличный от none).
Получается путём получения хэша от закодированных в Base64 заголовка и полезной нагрузки через точку (то есть, того, что передано в первых двух частях токена) с подмешанным секретом (строкой, известной только принимающей стороне и настоящей передающей стороне) и кодирования его в Base64. При проверке принимающей стороной переданная подпись должна совпасть с построенной при проверке.

Ссылки

https://jwt.io/
Стандарт RFC 7519
HMAC


Последнее обновление : 5 ноября 2023 г.
Дата создания : 25 февраля 2023 г.

Комментарии

Комментарии