Вопрос проверяет понимание механики работы JWT-токенов и процесса аутентификации в современных API.
JWT-аутентификация работает так: пользователь отправляет логин и пароль → сервер проверяет данные и выдаёт JWT-токен → клиент отправляет этот токен в заголовках каждого запроса → сервер валидирует токен и определяет, кто выполняет запрос.
JWT удобен тем, что не требует хранения сессий на сервере: все данные о пользователе зашиваются в сам токен.
Внутри токена есть header, payload и signature, которые позволяют защитить данные от подделки.
JWT (JSON Web Token) — это популярный формат токенов для аутентификации в API. Он позволяет передавать данные о пользователе в защищённом виде, без необходимости хранить состояние на сервере.
Клиент отправляет POST-запрос:
http
POST /auth/login
Тело запроса:
json
{"username": "alice", "password": "secret"}
Если логин и пароль верны → сервер создаёт JWT-токен.
header — алгоритм подписи
payload — данные (id пользователя, роли, время жизни)
signature — защита от подделки
Пример payload:
json
{"user_id": 42, "exp": 1712345678}
Клиент сохраняет токен и использует его при последующих запросах.
Токен передаётся в заголовке:
http
Authorization: Bearer <jwt-token>
Сервер:
проверяет подпись
проверяет дату истечения exp
извлекает user_id
Если токен корректен → запрос считается аутентифицированным.
python
import jwt
token = jwt.encode({"user_id": 1}, "secret", algorithm="HS256")
не требует серверного хранилища сессий
легко масштабируется
удобен в микросервисной архитектуре
нельзя отозвать токен до истечения срока без дополнительной инфраструктуры
нельзя хранить чувствительные данные внутри payload (он не шифруется)
JWT — удобный и масштабируемый способ аутентификации в API. Он хорошо подходит для микросервисов и stateless-систем, но требует внимательного подхода к безопасности.
Уровень
Рейтинг:
5
Сложность:
5
Навыки
Python
FastAPI
Networks
Ключевые слова
Подпишись на Python Developer в телеграм