Вы берёте JWT из заголовка запроса или из лог-файла. Это длинная строка, разделённая точками, которая ничего не значит для человеческого глаза. Вам нужно проверить claim с датой истечения, убедиться в издателе или увидеть, какие scope зашиты внутри. Поэтому вы открываете jwt.io, вставляете токен и читаете раскодированный payload в правой панели.
У этого рабочего процесса есть проблема: вы только что отправили действующий токен аутентификации по сети на сайт, который вам не подконтролен. Payload JWT часто содержит ID пользователей, email-адреса, роли и права доступа. Сам токен может быть всё ещё действителен. Даже если jwt.io заслуживает доверия, политика безопасности вашей компании может быть с этим не согласна.
Что на самом деле содержит JWT
JSON Web Token состоит из трёх частей, разделённых точками: заголовка (алгоритм и тип), payload (claims — истечение срока, издатель, субъект, произвольные данные) и подписи. Заголовок и payload — это просто JSON, закодированный в Base64url. Чтобы их прочитать, не нужен сервер или специальная библиотека — нужен декодер Base64 и форматтер JSON. Но делать это вручную в терминале каждый раз утомительно.
Декодируйте JWT локально на своём Mac
Bellows включает специализированный декодер JWT, который разбивает токен на три части и отображает раскодированные заголовок и payload в виде отформатированного JSON. Вставьте токен — увидите claims. Никаких сетевых запросов, никакого стороннего сервера, никакого риска утечки действующего токена.
Учитывает буфер обмена
Скопируйте JWT из инструментов разработчика браузера, лог-файла или сообщения в Slack. Откройте Bellows — приложение распознает формат токена в буфере обмена и сразу предложит декодер JWT. Раскодированный payload появится за один шаг.
Проверка истечения срока в одно мгновение
Самая частая причина декодировать JWT — проверить, истёк ли его срок. Claim exp — это Unix-таймстамп: удобно для машин, бессмысленно для людей. Раскодированный payload позволяет быстро прочитать срок истечения вместе с другими claims вроде iss, sub и aud, не пересчитывая таймстампы в уме.
Часть большего набора инструментов
Декодирование JWT часто ведёт к смежным задачам: декодировать значение Base64 внутри claim, захешировать строку для сравнения с отпечатком или декодировать URL redirect URI, хранящийся в payload. С 41 доступным инструментом в одном приложении эти последующие задачи не требуют перехода к другой утилите.