add authorization and admin role
This commit is contained in:
31
README.md
31
README.md
@ -9,16 +9,24 @@ API сервер для хранения и управления данными
|
||||
- **schemas.py** - схемы Pydantic для валидации данных
|
||||
- **database.py** - настройка подключения к базе данных
|
||||
- **crud.py** - функции для CRUD операций
|
||||
- **auth.py** - функции для JWT авторизации
|
||||
- **create_admin.py** - скрипт для создания первого админа
|
||||
|
||||
## Запуск проекта
|
||||
|
||||
1. Установите зависимости:
|
||||
|
||||
```bash
|
||||
pip install fastapi uvicorn sqlalchemy pydantic
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2. Запустите сервер:
|
||||
2. Создайте первого администратора:
|
||||
|
||||
```bash
|
||||
python create_admin.py --username admin --password your_password
|
||||
```
|
||||
|
||||
3. Запустите сервер:
|
||||
|
||||
```bash
|
||||
uvicorn main:app --reload
|
||||
@ -26,8 +34,27 @@ uvicorn main:app --reload
|
||||
|
||||
Сервер будет доступен по адресу http://localhost:8000
|
||||
|
||||
## JWT Авторизация
|
||||
|
||||
Для доступа к API необходима JWT авторизация. Вот как она работает:
|
||||
|
||||
1. Получите токен доступа, отправив POST-запрос к `/token` с вашими учетными данными:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/token -d "username=admin&password=your_password" -H "Content-Type: application/x-www-form-urlencoded"
|
||||
```
|
||||
|
||||
2. Используйте полученный токен для доступа к защищенным эндпоинтам:
|
||||
|
||||
```bash
|
||||
curl -X GET http://localhost:8000/cars -H "Authorization: Bearer your_token_here"
|
||||
```
|
||||
|
||||
## API эндпоинты
|
||||
|
||||
- **POST /token** - получить JWT токен (авторизация)
|
||||
- **POST /admins** - создать нового администратора (только для админов)
|
||||
- **GET /users/me** - получить информацию о текущем пользователе
|
||||
- **GET /cars** - получить список всех автомобилей
|
||||
- **GET /cars/{car_id}** - получить информацию о конкретном автомобиле
|
||||
- **POST /cars** - добавить новый автомобиль
|
||||
|
Reference in New Issue
Block a user