JWT не гарантирует никакой безопасности для чувствительных (sensitive) данных внутри.
Приложение знает секретный ключ и может выполнить тот же алгоритм подписывания к JWT, проверить эту подпись, сравнивая ее со своей собственной, вычисленной хешированием.
Преимущества использования JWT в сравнении с Классической схемой аутентификации, использующей сессии.
Подход с использованием токенов позволяет не хранить информацию обо всех выданных токенах, как при классической схеме. Когда пользователь обращается к приложению, он передает ему свой токен. Приложению остается только проверить подпись и извлечь необходимые поля из полезной нагрузки.
Приложению вообще не обязательно заниматься выдачей и валидацией токенов самостоятельно, зачастую для этих целей используется отдельный сервис аутентификации (IAM).
При использовании Отдельного сервиса аутентификации становится возможным организовать единую точку входа (SSO) в различные сервисы с одними и теми же учетными данными. Единожды пройдя процедуру аутентификации, пользователь сможет получить доступ со своим токеном К тем ресурсам, которые доверяют этому сервису аутентификации.
Структура
header.payload.signature
Header - алгоритм подписи
Payload
Signature
Защита jwt
fingerprint браузера (иной уникальный идентификатор устройства, если это не браузер)