Какие знаешь JWT Token

«Какие знаешь JWT Token» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JWT (JSON Web Token) — это стандарт для создания токенов доступа, основанный на JSON. Состоит из трех частей:

  1. Header — содержит алгоритм шифрования (например, HS256) и тип токена (JWT).
  2. Payload — данные (claims), например, user_id, exp (expiration time).
  3. Signature — подпись, созданная на основе header, payload и секретного ключа.

Пример JWT:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Типы токенов:

  • Access Token — короткоживущий, для доступа к API.
  • Refresh Token — долгоживущий, для обновления access token.

Безопасность:

  • Хранить в HttpOnly cookies или localStorage (с риском XSS).
  • Проверять подпись и exp.

Пример проверки в JS:

const decoded = jwt.verify(token, 'secret-key');