Saltar al contenido principal

Autenticación

Sistema de autenticación del backend de Floutic.

Autenticación JWT

Floutic utiliza autenticación JWT con refresh tokens para mayor seguridad.

Endpoints

Autenticación Básica

  • POST /api/auth/register - Registro de usuario (envía email de verificación, soporta múltiples roles)
  • POST /api/auth/login - Login y token JWT
  • POST /api/auth/refresh - Renovar token
  • POST /api/auth/logout - Cerrar sesión
  • GET /api/auth/verify - Verificar token
  • POST /api/auth/verify-email - Verificar email usando token de verificación
  • POST /api/auth/send-verification-email - Reenviar email de verificación (requiere autenticación)

Gestión de Roles Multiples

  • POST /api/auth/add-role - Añadir un nuevo rol al usuario autenticado (empresa o experto)
  • POST /api/auth/switch-role - Cambiar el rol activo del usuario autenticado

Nota sobre Registro:

  • El endpoint de registro acepta un array de roles en lugar de un solo role
  • Se puede seleccionar ["empresa"], ["experto"], o ["empresa", "experto"]
  • El active_role se establece al primer rol de la lista

Flujo de Añadir Rol a Usuario Existente:

  • Si un usuario intenta registrarse con un email que ya existe pero con un rol diferente, el sistema detecta esto
  • Se muestra un modal informativo al usuario explicando que puede añadir el nuevo rol a su cuenta existente
  • El usuario es redirigido al login con parámetros addRole y username
  • Después de iniciar sesión, el nuevo rol se añade automáticamente a su cuenta
  • El rol activo no cambia automáticamente; el usuario puede cambiarlo después si lo desea

Gestión de Roles por Administrador:

  • Los administradores pueden gestionar roles de usuarios mediante PUT /api/admin/users/{user_id}/roles
  • Pueden añadir, eliminar o cambiar el rol activo de cualquier usuario
  • El sistema valida que el usuario siempre tenga al menos un rol

Más Información

Consulta la Documentación de Seguridad para más detalles sobre:

  • Sistema multi-rol
  • RBAC (Role-Based Access Control)
  • Autenticación segura con HttpOnly cookies