API RESTful modular desarrollada con FastAPI, SQLAlchemy y PostgreSQL para la gestión centralizada de autenticación, autorización basada en roles (RBAC) y administración de usuarios.
- 🔒 Autenticación Segura: Generación y validación de tokens JWT mediante
OAuth2PasswordBearer. - 🔑 Hash de Contraseñas: Encriptación de credenciales usando
passlib[bcrypt]. - 🛡️ Control de Acceso (RBAC): Middleware/Dependencias de seguridad para protección de endpoints según el rol.
- 📦 Arquitectura Modular: Separación clara de responsabilidades (Routers, Schemas, Models, Services, Core).
- 🗄️ Persistencia en la Nube: Configurado para conectarse a PostgreSQL hospedado en Supabase.
- 📖 Documentación Interactiva: OpenAPI / Swagger UI integrado automáticamente por FastAPI.
- 🧪 Colección de API Testing: Incluye archivo de colección de pruebas para Bruno API Client.
- Lenguaje: Python 3.13+
- Framework Web: FastAPI
- ORM: SQLAlchemy
- Base de Datos: PostgreSQL (Supabase)
- Seguridad: PyJWT /
python-jose,passlib[bcrypt] - Validación de Datos: Pydantic v2 &
pydantic-settings - Cliente de Pruebas: Bruno (
api_test/)
auth-service/
├── api_test/ # Colecciones de pruebas para Bruno API Client
├── app/
│ ├── core/ # Configuración global, seguridad y hash de contraseñas
│ ├── database/ # Configuración de sesión y conexión a PostgreSQL (SQLAlchemy)
│ ├── models/ # Modelos de entidad de la base de datos
│ ├── routers/ # Definición de endpoints de la API (Auth, Users)
│ ├── schemas/ # Validadores y DTOs con Pydantic
│ └── services/ # Lógica de negocio
├── authDB.sql # Script SQL de inicialización de tablas
├── main.py # Punto de entrada de la aplicación FastAPI
└── requirements.txt # Dependencias del proyecto# Identity & Auth Service API