Как передается публичный ключ JWT
Python
Senior
VK
Как передается публичный ключ JWT
Ответы
Публичный ключ для верификации JWT обычно передается через **JWKS (JSON Web Key Set)** — специальный эндпоинт, который возвращает набор ключей в формате JSON.
Пример JWKS:
```
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "1",
"alg": "RS256",
"n": "public_key_modulus",
"e": "public_key_exponent"
}
]
}
```
Где:
- `kty` — тип ключа (RSA, EC).
- `use` — назначение (`sig` для подписи).
- `kid` — идентификатор ключа (используется для выбора из нескольких ключей).
**Альтернативные способы:**
- **В заголовке JWT (`jwk`)** — редко, из-за размера токена.
- **Через конфигурацию** — жестко закодирован в приложении (негибко).
Пример получения ключа в Python (библиотека `PyJWT` + `requests`):
```
import jwt
import requests
jwks_url = "https://auth.example.com/.well-known/jwks.json"
jwks = requests.get(jwks_url).json()
public_key = jwt.algorithms.RSAAlgorithm.from_jwk(jwks["keys"][0])
```