JWT-аутентификация в FastAPI

Аутентификация отвечает на вопрос: «Кто вы?» Авторизация отвечает на вопрос: «Что вы можете делать?»

Если вы создаете ИИ-платформу без защиты, любой сможет получить доступ к конфиденциальным данным. Злоумышленники могут изменять профили пользователей или просматривать успеваемость студентов. Вы обязаны защищать свои ресурсы.

JWT (JSON Web Token) решает эту проблему. Вместо того чтобы отправлять пароль с каждым запросом, пользователь отправляет защищенный токен.

Рабочий процесс:

Вам следует использовать следующие инструменты:

Никогда не храните пароли в открытом виде. Если хакер украдет вашу базу данных, он получит всё. Вместо этого храните хеш.

Хеш превращает «password123» в длинную строку случайных символов. Вы не можете превратить хеш обратно в пароль. Вы лишь проверяете, соответствует ли введенный пароль хешу.

Как это реализовать:

  1. Регистрация Пользователь отправляет имя пользователя и пароль. Вы хешируете пароль и сохраняете его в базе данных.

  2. Вход в систему Пользователь отправляет учетные данные. Вы находите сохраненный хеш. Вы используете библиотеку для проверки пароля. Если он совпадает, вы создаете токен.

  3. Генерация JWT Токен содержит данные пользователя и время истечения срока действия. Вы подписываете токен секретным ключом. Если пользователь попытается изменить данные, подпись станет недействительной.

Ответ при входе выглядит так: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }

Теперь у пользователя есть ключ к вашей системе.

В следующей части мы узнаем, как использовать эти токены для защиты определенных маршрутов и управления ролями пользователей.

Краткий обзор шагов:

Источник: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

Дополнительное обучающее сообщество: https://t.me/GyaanSetuAi