JWT
JWT (JSON Web Token)
Компактный, URL-безопасный формат токенов для безопасной передачи утверждений между сторонами, широко используемый для аутентификации и авторизации в веб-приложениях и API.
Техническая деталь
JWT состоит из трёх частей, закодированных в base64url и разделённых точками: заголовок (алгоритм и тип токена), полезная нагрузка (утверждения — sub, exp, iat и пользовательские данные) и подпись (HMAC-SHA256 или RSA/ECDSA по заголовку+полезной нагрузке). JWT подписан, но по умолчанию не зашифрован, поэтому данные полезной нагрузки доступны для чтения любому. JWE (JSON Web Encryption) добавляет шифрование полезной нагрузки. Распространённые уязвимости включают атаку алгоритма 'none', подбор секретного ключа для HMAC и повторное использование токенов. Лучшие практики: короткое время жизни, refresh-токены и валидация аудитории/издателя.
Пример
```javascript
// JWT: web API example
const response = await fetch('/api/resource');
const data = await response.json();
console.log(data);
```