Встречается на собеседованиях • сегодня
Как работает JWT авторизация
JWT (JSON Web Token) — это компактный способ безопасной передачи данных между сторонами в виде JSON-объекта. Он состоит из трех частей, разделенных точками:
1. **Header** — содержит тип токена и алгоритм шифрования (например, `{"alg": "HS256", "typ": "JWT"}`).
2. **Payload** — полезные данные (например, `{"user_id": 123, "exp": 1735689600}`).
3. **Signature** — подпись, созданная на основе header, payload и секретного ключа.
**Пример создания JWT в Python (библиотека `pyjwt`):**
```python
import jwt
secret_key = "your_secret_key"
payload = {"user_id": 123, "exp": 1735689600} # exp — срок действия
token = jwt.encode(payload, secret_key, algorithm="HS256")
print(token) # Вывод: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
```
**Как это работает:**
1. Клиент отправляет логин/пароль, сервер проверяет их и генерирует JWT.
2. Сервер отправляет токен клиенту, который сохраняет его (например, в localStorage).
3. Клиент прикрепляет токен к заголовку `Authorization: Bearer ` при каждом запросе.
4. Сервер проверяет подпись и данные токена перед выполнением запроса.
**Плюсы:**
- Stateless (не требует хранения сессий на сервере).
- Подходит для микросервисов и мобильных приложений.
**Минусы:**
- Нельзя отозвать токен до истечения `exp` (решается через черные списки или короткий срок жизни).
- Уязвим к XSS-атакам, если хранить в localStorage.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы