You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🔐 Auth Project — Система аутентификации и авторизации
Backend-приложение с собственной системой аутентификации и авторизации на основе JWT и RBAC (Role-Based Access Control).
🎯 О проекте
Приложение реализует полноценную систему управления пользователями и разграничения прав доступа к ресурсам без использования готовых решений из коробки. Система построена на основе RBAC - пользователи получают роли, роли получают разрешения на конкретные ресурсы и действия.
🛠️ Стек технологий
Backend
FastAPI — веб-фреймворк
SQLAlchemy (async) — ORM для работы с БД
Alembic — миграции базы данных
PostgreSQL — основная база данных
python-jose — создание и проверка JWT токенов
pwdlib — хэширование паролей (Argon2)
Pydantic v2 — валидация данных
DevOps
Docker & Docker Compose — контейнеризация
📋 Функционал
Пользователи
Регистрация с валидацией данных
Вход по email и паролю (JWT токен)
Получение своего профиля
Обновление профиля (PATCH)
Мягкое удаление аккаунта (is_active=False)
Система прав доступа (RBAC)
Роли пользователей (admin, manager, viewer)
Разрешения на уровне ресурс + действие
Проверка прав при каждом запросе
401 если пользователь не авторизован
403 если нет доступа к ресурсу
API управления ролями для администратора
Роли в системе
Роль
Описание
Доступные ресурсы
admin
Полный доступ
orders, products, reports (read + delete)
manager
Ограниченный доступ
orders (read + delete), products (read)
viewer
Только чтение
orders, products, reports (read)
🚀 Запуск проекта
Требования
Docker & Docker Compose
Git
Быстрый старт
Клонируем репозиторий
git clone https://github.com/egorpusto/auth-project.git
cd auth-project