JWT (JSON Web Token) — стандарт токенов, которым приложения подтверждают, что пользователь авторизован. Если вы разрабатываете API или отлаживаете авторизацию, рано или поздно нужно заглянуть внутрь токена. Разберём, как он устроен.
Как выглядит JWT
Это длинная строка из трёх частей, разделённых точками:
xxxxx.yyyyy.zzzzz
- Header (заголовок) — какой алгоритм подписи используется.
- Payload (полезная нагрузка) — сами данные: кто пользователь, когда токен истекает, какие у него права.
- Signature (подпись) — защита от подделки.
Первые две части — это просто данные, закодированные в Base64. Поэтому их можно прочитать.
Что значит «расшифровать»
Строго говоря, JWT не зашифрован, а закодирован. Header и Payload — это Base64 от обычного JSON (см. что такое Base64). Любой может раскодировать их и увидеть содержимое. Поэтому не кладите в JWT секреты — пароли, номера карт. Внутри только то, что не страшно показать.