Files
shopit-back/app/Domains/Auth/documentacion/README.md

1.9 KiB

Dominio Auth

Propósito

Gestiona identidad y acceso de usuarios de la tienda y del panel administrativo: registro, inicio y cierre de sesión, perfil, autenticación con Google y recuperación de contraseña.

Modelo y servicios

  • User: usuario autenticable, asociado a tenant, rol, intentos de acceso y categorías habilitadas para escaneo.
  • LoginAttempt y ResetPasswordAttempt: trazabilidad de accesos y recuperación de contraseña.
  • PasswordLoginService: autentica tienda y AdminApp, incluyendo bloqueo por intentos.
  • RegisterUserService y ProfileService: alta y edición del usuario.
  • ResetPasswordAttemptService: crea, valida y consume códigos de recuperación.
  • GoogleAuthService: redirección, callback e intercambio de código para Google OAuth.
  • AdminAppContextService: carga el contexto requerido por un usuario administrativo.

Endpoints públicos

  • POST /register, POST /login y POST /logout.
  • GET /me y PUT /me, protegidos por auth:sanctum.
  • Creación, validación y aplicación de intentos de recuperación bajo /password.
  • POST /auth/google/exchange para canjear el código de autenticación.
  • POST /v1/adminapp/login y consulta del usuario administrativo dentro del grupo autenticado de AdminApp.

Validación y respuestas

Los FormRequest validan cada operación. UserResource y AdminAppMeResource definen las representaciones de salida. Los endpoints sensibles aplican auth:sanctum y límites de frecuencia.

Dependencias y eventos

Se relaciona con Tenant y Authorization; el registro y la recuperación disparan flujos atendidos por Notification. El carrito invitado puede integrarse al usuario autenticado mediante el dominio Cart.

Consideraciones

  • La resolución del tenant forma parte de la autenticación y no debe omitirse.
  • Los cambios en reglas de login deben conservar los límites de intentos y el manejo de AccountLockedException.