Microservicio RESTful para la gestión de usuarios con autenticación basada en Laravel Sanctum. Diseñado para integrarse con sistemas de microservicios, proporcionando control de acceso mediante roles (admin, editor, user) y estados de cuenta.
- Autenticación segura con Laravel Sanctum (tokens personales)
- Sistema de roles: Admin, Editor, User
- Estados de cuenta: Active, Inactive, Suspended, Pending
- Control de acceso basado en roles
- CRUD completo de usuarios
- Soft deletes para recuperación de datos
- API RESTful con respuestas JSON
- Framework: Laravel 12
- Autenticación: Laravel Sanctum
- Base de Datos: 11.8.3-MariaDB-1build1
- PHP: 8.4.11
- Composer: 2.8.8
Nota: funciona con MySQL
Sigue estos pasos para configurar y ejecutar el proyecto en tu entorno local:
- Clonar o descargar el proyecto:
-
Instalar dependencias de Composer:
composer install -
Configurar variables de entorno:
cp .env.example .env
Edita el archivo .env con tus credenciales de Base de Datos
-
Generar la clave de aplicación:
php artisan key:generate
-
Crear la base de datos:
CREATE DATABASE db_user CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
El nombre de la DB debe ser el mismo que el puesto en el archivo .env
-
Ejecutar migraciones:
Opción 1: Solo crear las tablas (sin datos)
php artisan migrate
Opción 2: Resetear base de datos y crear tablas limpias
php artisan migrate:fresh
-
Sembrar datos de prueba (Opcional) :
php artisan db:seed
-
Levantar el servidor:
php artisan serve
Por defecto, la API estará disponible en http://127.0.0.1:8000
| Rol | Permisos | Descripción |
|---|---|---|
| Admin | *(todos) |
Acceso completo. Puede crear otros admins y gestionar todos los usuarios |
| Editor | read,create,update |
Puede ver, crear y actualizar usuarios (excepto admins) |
| User | read |
Solo puede ver información de usuarios |
| Estado | Descripción | ¿Puede hacer login? |
|---|---|---|
| active | Cuenta activa y funcional | Sí |
| pending | Pendiente de aprobación por admin | No |
| inactive | Cuenta desactivada temporalmente | No |
| suspended | Cuenta suspendida por violación | No |
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/auth/register |
Registrar nuevo usuario (rol: user, estado: pending) |
| POST | /api/auth/login |
Iniciar sesión y obtener token |
| Método | Ruta | Descripción | Roles |
|---|---|---|---|
| GET | /api/auth/me |
Obtener usuario autenticado | Todos |
| GET | /api/auth/validate-token |
Validar token (para microservicios) | Todos |
| POST | /api/auth/logout |
Cerrar sesión actual | Todos |
| POST | /api/auth/logout-all |
Cerrar todas las sesiones | Todos |
| Método | Ruta | Descripción | Roles |
|---|---|---|---|
| GET | /api/users |
Listar todos los usuarios | Todos |
| GET | /api/users/{id} |
Obtener usuario por ID | Todos |
| POST | /api/users |
Crear usuario | Admin |
| PUT | /api/users/{id} |
Actualizar usuario completo | Admin, Editor |
| PATCH | /api/users/{id} |
Actualizar usuario parcial | Admin, Editor |
| DELETE | /api/users/{id} |
Eliminar usuario (soft delete) | Admin |









