Вопрос проверяет понимание структуры JWT и того, какие данные безопасно помещать в токен.
JWT состоит из header, payload и signature. В payload обычно хранятся идентификатор пользователя, роли, срок действия и служебные поля. Эти данные не шифруются по умолчанию, а только подписываются. Поэтому в JWT нельзя хранить чувствительные данные.
JWT — это токен, который содержит данные и цифровую подпись для проверки целостности.
Токен состоит из трех частей:
Header
Payload
Signature
Пример структуры:
header.payload.signature
Обычно туда помещают:
user id
роли или права
время истечения (exp)
время выпуска (iat)
issuer (iss)
Пример payload:
{
"sub": "12345",
"role": "admin",
"exp": 1700000000
}
Важно понимать:
JWT легко декодируется
payload не шифруется по умолчанию
подпись защищает от подмены, но не скрывает данные
Основные сценарии:
авторизация API
микросервисы
Single Sign-On
JWT обычно хранит идентификаторы и метаданные пользователя, но не должен содержать чувствительные данные, поскольку payload доступен для чтения.