Что такое JWT-токен
Python
Middle
Без компании
Что такое JWT-токен
Ответы
JWT (JSON Web Token) — это стандарт для создания токенов доступа, основанный на JSON. Он состоит из трех частей, разделенных точками:
- **Header** — содержит тип токена и алгоритм шифрования (например, HS256 или RS256).
- **Payload** — полезная нагрузка с данными (claims), например, user_id, срок действия (exp), issuer (iss).
- **Signature** — подпись, созданная на основе header, payload и секретного ключа для проверки подлинности.
Пример JWT:
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```
Пример создания JWT в Python с библиотекой `pyjwt`:
```
import jwt
secret = "your-secret-key"
payload = {"user_id": 123, "exp": 1735689600} # exp — timestamp истечения
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)
```
**Преимущества JWT:**
- Не требует хранения состояния на сервере (stateless).
- Легко проверяется подпись.
- Можно передавать дополнительные данные в payload.
**Недостатки:**
- Нельзя отозвать без дополнительных механизмов (blacklist, short-lived токены).
- Payload не шифруется по умолчанию (только кодируется в Base64).