Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Выход из системы

translation

Это сообщение переведено AI.

Seize the day

Что такое JWT (JSON Web Token)?

  • Язык написания: Корейский
  • Базовая страна: Все страны country-flag

Выбрать язык

  • Русский
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Текст, резюмированный ИИ 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 защищен с помощью подписи, цифровой подписи, которая гарантирует целостность данных.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
Вместо платного сертификата электронной подписи, используйте бесплатный сертификат для финансовых операций! Представляем сертификат для финансовых операций, который можно получить бесплатно вместо сертификата электронной подписи. Вы можете получить его за 3 минуты и использовать в течение 3 лет. Заявку можно подать на сайте банка, а использовать его можно в сер
길리
길리
길리
길리
길리

17 апреля 2024 г.

[Эффективная Java] Элемент 6. Избегайте ненужного создания объектов Руководство по минимизации ненужного создания объектов в Java. Для неизменяемых объектов, таких как String, Boolean, рекомендуется использовать литералы, а для регулярных выражений – кэшировать экземпляры Pattern. Кроме того, автоупаковка может привести к
제이온
제이온
제이온
제이온

28 апреля 2024 г.

[DB] Настройка кеша Практическое руководство по кэшированию данных, которые часто читаются, но редко записываются. Показываем, как использовать APM, такие как DataDog, для анализа истории вызовов запросов RDB и выбора таблиц для кэширования, где количество запросов на выборк
제이온
제이온
제이온
제이온
제이온

25 апреля 2024 г.

Что такое LLM (Large Language Model)? Большая языковая модель (LLM) является ключевой технологией искусственного интеллекта, которая обучается на обширных текстовых данных и обладает способностью обработки языка, подобной человеческой. Она может использоваться в различных областях, таких как
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

1 апреля 2024 г.

[Эффективная Java] Пункт 1. Рассмотрите статические фабричные методы вместо конструкторов Статические фабричные методы удобны тем, что могут контролировать создание объектов с помощью имен. Они могут возвращать существующие экземпляры, а не создавать новые каждый раз, что эффективно. Они имеют недостаток в том, что затрудняют наследование, но
제이온
제이온
제이온
제이온

27 апреля 2024 г.

[Нетехнический специалист, выживание в качестве разработчика] 16. Советы по составлению портфолио для начинающих разработчиков Начинающим разработчикам (особенно нетехническим специалистам) при составлении портфолио необходимо четко описывать не только технологии, но и разработанные сервисы или функции. Например, если проект — это "Сообщество для ищущих работу", в него следует вк
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 апреля 2024 г.