Приложение на FastAPI⁚ создание аутентификации и авторизации пользователя․ Применение асинхронности․ Пример кода и подробная инструкция․
Привет! Меня зовут Алексей, и сегодня я хочу поделиться с вами опытом создания аутентификации и авторизации пользователя в веб-приложении, используя FastAPI․ FastAPI, это современный фреймворк для создания веб-приложений, написанный на Python, который обладает высокой производительностью и простотой использования․
Шаг 1⁚ Установка зависимостей
Прежде чем начать, вам понадобится установить несколько зависимостей․ Создайте новую виртуальную среду Python и выполните следующую команду в терминале⁚
shell
pip install fastapi uvicorn passlib[bcrypt]
Шаг 2⁚ Настройка моделей
Теперь, создадим модели для пользователей․ В файле `models․py` добавьте следующий код⁚
python
from pydantic import BaseModel
class User(BaseModel)⁚
username⁚ str
password⁚ str
Это базовая модель пользователя, которая будет использоваться для создания таблицы в базе данных․
Шаг 3⁚ Создание маршрутов
Теперь, создадим маршруты для аутентификации и авторизации пользователей․ В файле `main․py` добавьте следующий код⁚
python
from fastapi import FastAPI, HTTPException
from fastapi․security import HTTPBasic, HTTPBasicCredentials
from passlib․hash import bcrypt
from models import User
app FastAPI
security HTTPBasic
users []
@app;post(″/register»)
def register(user⁚ User)⁚
hashed_password bcrypt․hash(user․password)
user_dict user․dict
user_dict[″password″] hashed_password
users․append(user_dict)
return {″message″⁚ ″User registered successfully″}
@app․post(″/login»)
def login(credentials⁚ HTTPBasicCredentials)⁚
user find_user_by_username(credentials․username)
if not user or not bcrypt․verify(credentials․password, user[″password″])⁚
raise HTTPException(status_code401, detail″Invalid username or password″)
return {″message″⁚ ″User logged in successfully″}
def find_user_by_username(username⁚ str)⁚
for user in users⁚
if user[″username″] username⁚
return user
return None
Шаг 4⁚ Запуск сервера FastAPI
Теперь, мы готовы запустить сервер FastAPI и протестировать созданную аутентификацию и авторизацию․ В файле `main․py` добавьте следующий код, чтобы сервер запускался при выполнении скрипта⁚
python
if __name__ ″__main__″⁚
uvicorn․run(app, host″0․0․0․0″, port8000)
Теперь запустите сервер с помощью следующей команды⁚
shell
uvicorn main⁚app —reload
Шаг 5⁚ Тестирование
Теперь, вы можете протестировать созданную аутентификацию и авторизацию․ Воспользуйтесь cURL или Postman для отправки запросов на сервер․- Для регистрации нового пользователя, отправьте POST-запрос на `localhost⁚8000/register` со следующим JSON-телом⁚
json
{
″username″⁚ ″alex″,
″password″⁚ ″password″
}
— Для авторизации пользователя, отправьте POST-запрос на `localhost⁚8000/login` со следующим JSON-телом⁚
json
{
″username″⁚ ″alex″,
″password″⁚ ″password″
}
Если ваши запросы прошли успешно, вы должны получить ответы ″User registered successfully″ и ″User logged in successfully″ соответственно․
В этой статье я рассказал вам о том, как создать аутентификацию и авторизацию пользователя в приложении на FastAPI․ Мы использовали модели для определения пользователей, создали маршруты для регистрации и входа в систему, а также протестировали нашу реализацию․ Надеюсь, эта информация была полезной для вас!