API для аутентификации и авторизации пользователей с использованием OAuth2 и JWT токенов.
- Регистрация и авторизация пользователей
- JWT токены для аутентификации
- Обновление токенов
- Разграничение прав доступа (пользователь/администратор)
- Управление пользователями (CRUD)
- Изменение пароля
- Python 3.10+
- FastAPI 0.95+
- MongoDB (через Motor для асинхронной работы)
- Pydantic 2.0+
- JWT для токенов авторизации
- Passlib + Bcrypt для хеширования паролей
- Клонировать репозиторий
- Создать виртуальное окружение:
python -m venv venv source venv/bin/activate # для Linux/macOS venv\Scripts\activate # для Windows
- Установить зависимости:
pip install -r requirements.txt
- Создать файл
.env
на основе.env.example
- Запустить MongoDB
- Запустить приложение:
python main.py
После запуска API будет доступно по адресу http://localhost:8000
POST /api/auth/register
- Регистрация нового пользователяPOST /api/auth/login
- Авторизация и получение JWT токенаPOST /api/auth/refresh-token
- Обновление JWT токенаPOST /api/auth/change-password
- Изменение пароля
GET /api/users/me
- Получение информации о текущем пользователеPUT /api/users/me
- Обновление информации о текущем пользователеGET /api/users
- Получение списка пользователей (только для администраторов)GET /api/users/{user_id}
- Получение информации о пользователеPUT /api/users/{user_id}
- Обновление информации о пользователе (только для администраторов)DELETE /api/users/{user_id}
- Удаление пользователя (только для администраторов)
POST /api/auth/register
{
"username": "john_doe",
"email": "[email protected]",
"password": "securepassword",
"full_name": "John Doe"
}
POST /api/auth/login
{
"username": "john_doe",
"password": "securepassword"
}
Для защищенных эндпоинтов необходимо добавить заголовок авторизации:
Authorization: Bearer your_jwt_token_here
- USER - обычный пользователь с базовыми правами
- ADMIN - администратор с полными правами управления