Из чего состоит JWT-токен
Python
Middle
Без компании
Из чего состоит JWT-токен
Ответы
JWT (JSON Web Token) состоит из трех частей, разделенных точками:
- **Header** – содержит алгоритм шифрования (`alg`) и тип токена (`typ`). Пример:
```
{
"alg": "HS256",
"typ": "JWT"
}
```
После кодирования в Base64URL: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9`.
- **Payload** – хранит данные (claims), например, `user_id`, `exp` (время истечения). Пример:
```
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
```
Base64URL: `eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ`.
- **Signature** – создается путем хеширования `Header + Payload` с секретным ключом (для HMAC) или приватным ключом (RSA). Пример для HS256:
```
HMACSHA256(
base64UrlEncode(header) + "." + base64UrlEncode(payload),
secret_key
)
```
Итоговый токен:
`Header.Payload.Signature` → `xxxxx.yyyyy.zzzzz`.
⚠️ Важно: JWT не шифрует данные, а только кодирует в Base64. Для безопасности используйте HTTPS и проверяйте подпись.