![translation](https://cdn.durumis.com/common/trans.png)
Это сообщение переведено AI.
Что такое JWT (JSON Web Token)?
- Язык написания: Корейский
- •
-
Базовая страна: Все страны
- •
- ИТ
Выбрать язык
Текст, резюмированный ИИ durumis
- JSON Web Token (JWT) — это зашифрованный токен для безопасной передачи информации.
- JWT состоит из заголовка, полезной нагрузки и подписи, а подпись гарантирует целостность данных.
- JWT не требует отдельного управления состоянием, что делает его масштабируемым в распределенных средах.
Что такое JWT?
JSON Web Token (JWT) — это тип стандарта, который позволяет безопасно передавать информацию в виде JSON-объекта (RFC 7519). По сути, необходимая информация помещается в токен и шифруется для использования.
JWT подчеркивает, что это подписанный токен. При использовании пары ключей (публичный/приватный) для подписи, эта подпись гарантирует, что только сторона, владеющая закрытым ключом, подписала токен. То есть, сервер, владеющий ключом, может проверить, является ли токен действительным.
Структура JWT
JWT состоит из заголовка (Header), полезной нагрузки (Payload) и подписи (Signature).
Каждая часть кодируется в Base64 и разделяется точкой (.).
Заголовок
{
"alg": "HS256",
"typ": "JWT"
Заголовок содержит два основных элемента информации: тип токена (typ) и используемый алгоритм подписи (alg). Алгоритм подписи используется для создания и проверки подписи.
Typ назначается как «JWT», а alg записывается как HMAC, SHA256 и т.д. Как показано в приведенном выше примере, это означает, что используется алгоритм HS256 с использованием закрытого ключа.
Полезная нагрузка
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
Полезная нагрузка содержит утверждения, которые вы хотите передать с токеном. Информация об идентификации пользователя или свойство токена сохраняются в виде пар «ключ-значение». Другими словами, разработчик может вставлять информацию по своему усмотрению!
В соответствии со спецификацией, имена ключей сокращаются до 3 букв.
Зарегистрированные утверждения следующие:
- iss (Issuer) : издатель токена (содержит уникальную информацию об издателе токена)
- sub (Subject) : субъект, для которого предназначен токен
- aud (Audience) : получатель токена
- exp (Expiration Time) : время истечения срока действия токена (после этого времени токен больше не действителен)
- nbf (Not Before) : дата активизации токена (токен недоступен до этого времени)
- iat (Issued At) : время выдачи токена
- jti (JWT Id) : идентификатор JWT-токена (значение, используемое для различения издателей, если их несколько)
Вы можете добавить и использовать другие значения, если они вам нужны.
Однако полезная нагрузка не является зашифрованным подписанным значением, поэтому в ней не хранится конфиденциальная информация.
Любой может прочитать его после декодирования.jwt.ioВы также можете проверить это прямо на сайте.
Подпись
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
your-256-bit-secret
Заголовок и полезная нагрузка соединяются точкой (.) после кодирования в Base64, а затем подписываются с помощью секретного ключа your-256-bit-secret, который хранится на сервере.
Таким образом, только сервер, выдавший токен, может расшифровать подпись с помощью закрытого ключа.
Чтобы расшифровать, вы можете расшифровать подпись с помощью закрытого ключа, а затем проверить, совпадает ли base64UrlEncode(header) с заголовком JWT и совпадает ли base64UrlEncode(payload) с полезной нагрузкой.
Хотя заголовок и полезная нагрузка, за исключением подписи, зашифрованы и их содержимое можно просмотреть, целостность и безопасность информации гарантируется за счет подписи.
JWT — это самодостаточный токен, который содержит всю необходимую информацию. JWT был создан, чтобы компенсировать недостатки сеансов, которые должны быть в состоянии, и не требует отдельного хранилища.
Серверу не нужно поддерживать сеанс, поэтому JWT без состояния, что повышает масштабируемость в распределенных системах или архитектуре микросервисов.
JWT защищен с помощью подписи, цифровой подписи, которая гарантирует целостность данных.