CRUD-Test — API de Usuarios con Autenticación JWT

  • Java
  • Spring
  • MySQL
  • Flyway
  • JWT
  • Spring AI
Demostración de CRUD-Test — API de Usuarios con Autenticación JWT

Problema

El registro de usuarios en muchas APIs es binario: o el usuario existe y está activo, o no existe. Este proyecto explora un flujo más real donde el usuario puede quedar en estado PENDING tras el registro inicial, con un token parcial de vida corta para completar el onboarding.

Solución

API con dos fases de registro controladas por estado (PENDINGACTIVE) y tokens JWT diferenciados. Un token parcial (15 min, un solo uso) cubre el flujo de activación; el token completo habilita todas las operaciones. Spring Security valida el tipo de token en cada endpoint.

Arquitectura

  • Token parcial de un solo uso — almacenado en BD, invalidado al consumirse o expirar; previene replay attacks en el flujo de activación
  • MapStruct — mapeo seguro entre DTOs y entidades sin reflection manual
  • Flyway — migraciones versionadas para el esquema MySQL
  • Spring AI — módulo preparado para integración con OpenAI; arquitectura lista para agregar asistencia IA sin refactoring
  • OpenAPI / Swagger UI — documentación autogenerada de todos los endpoints
  • Pruebas de integración — cobertura del repositorio de tokens parciales con perfil de BD dedicado para testing