JWT. Его составляющие и особенности использования

JWT (Json Web Token) - стандарт по созданию авторизационных токенов.

Этот стандарт позволяет:

  • передать в токен необходимую нам информацию (например, id пользователя) и использовать ее при получении токена (для вытягивания необходимого пользователя из базы данных и т. д.)

  • удостоверится в целостности информации в токене с помощью подписи (подробнее об этом далее)

JWT-стадарт предусматривает, что токен будет состоять из 3-х частей:

  • заголовков (headers)

  • пейлоада (payload)

  • подписи (signature)

Заголовки (обозначены красным) - информация о том, как был создан токен (в частности, алгоритм использованый для подписи пейлоада).

Пейлоад (обозначен фиолетовым) - собственно, информация, которую мы передали при создании токена в формате json (как правило, id пользователя или id сессии).

Следует иметь в виду, что информация в пейлоаде находится в незашифрованном формате (просто json-строка, закодированная в base64), поэтому не стоит хранить важную информацию в jwt-токене, так как ее может увидеть любой желающий.

Подпись (обозначена синим) - это захешированный с помощью ключа, пейлоад. Подпись позволяет убедиться, что со времени создания токена, данные в пейлоаде оставались неизменными (последующим сравнением хэшей пейлоада и подписи).

Last updated