— Об этом инструменте
JSON Web Token (JWT) — это подписанный, безопасный для URL токен из трёх частей: заголовка, полезной нагрузки и подписи, который используется для передачи аутентификационных утверждений между сервисами. Этот генератор берёт вашу полезную нагрузку в формате JSON, подписывает её выбранным вами алгоритмом и ключом и выдаёт готовый к использованию токен. Для HS256/384/512 вы указываете общий секрет; для RS256 вы вставляете закрытый ключ PKCS#8, а соответствующий открытый ключ проверяет подпись на другой стороне.
Подпись выполняется локально с помощью библиотеки jose поверх Web Crypto API, поэтому ваша полезная нагрузка и ключи никогда не попадают на сервер. Используйте инструмент, чтобы выпустить тестовые токены для API, воспроизвести ошибку аутентификации или точно понять, во что подписываются конкретные заголовок и полезная нагрузка. Чтобы вместо этого изучить уже имеющийся токен, воспользуйтесь декодером JWT.
Ваша полезная нагрузка и ключ для подписи остаются в браузере — токен подписывается локально.
Часто задаваемые вопросы
В чём разница между HS256 и RS256?
HS256 использует один общий секрет как для подписи, так и для проверки (симметричный алгоритм). RS256 использует закрытый ключ для подписи и отдельный открытый ключ для проверки (асимметричный алгоритм), что позволяет распространять открытый ключ, не раскрывая возможность подписывать. Выбирайте в зависимости от того, что ожидает ваша проверяющая сторона.
Устанавливает ли инструмент exp, iat или другие утверждения автоматически?
Нет — он подписывает ровно ту полезную нагрузку, которую вы предоставили, так что контроль остаётся за вами. Добавляйте зарегистрированные утверждения, такие как exp (срок действия) или iat (время выпуска), в свой JSON самостоятельно, в виде Unix-меток времени в секундах.
Как прочитать токен, который у меня уже есть?
Воспользуйтесь декодером JWT, который разбивает токен на заголовок и полезную нагрузку и показывает утверждения без необходимости знать секрет.