feat(auth): estrategia multicanal (WebControl + Google/Facebook + MariaDB Staff) y rediseño de login con mascota bot
This commit is contained in:
@@ -77,7 +77,13 @@ help_desk/
|
||||
│ └── settings.ejs # Configuración general de la empresa
|
||||
└── public/
|
||||
├── css/
|
||||
│ └── style.css # Estilos personalizados de la interfaz
|
||||
│ └── style.css # Estilos personalizados, responsive, tabs y botones sociales
|
||||
├── img/
|
||||
│ ├── logo.svg # Isotipo y logotipo base
|
||||
│ ├── favicon* # Favicons multi-resolución
|
||||
│ ├── bot-soporte.svg # Mascota oficial vectorizada del Bot de Soporte
|
||||
│ ├── bot-soporte.png # Mascota en raster alta resolución (192x192)
|
||||
│ └── bot-soporte-512.png # Mascota en raster alta resolución (512x512)
|
||||
└── js/
|
||||
└── main.js # Lógica JavaScript en navegador
|
||||
```
|
||||
@@ -89,8 +95,10 @@ help_desk/
|
||||
| Método | Ruta | Middleware de Acceso | Descripción |
|
||||
|---|---|---|---|
|
||||
| **GET** | `/` | Sesión / Redirección | Redirige al dashboard correspondiente según el rol del usuario |
|
||||
| **GET** | `/login` | Público | Renderiza formulario de login |
|
||||
| **POST** | `/login` | Público | Valida credenciales e inicializa sesión |
|
||||
| **GET** | `/login` | Público | Renderiza formulario de login con selector de perfil (Clientes vs Staff) |
|
||||
| **POST** | `/login` | Público | Valida credenciales (Clientes vía WebControl, Personal técnico vía MariaDB local) |
|
||||
| **POST** | `/auth/google` | Público | Autenticación social con Google OAuth (GIS ID Token) para clientes |
|
||||
| **POST** | `/auth/facebook` | Público | Autenticación social con Facebook OAuth (Graph API) para clientes |
|
||||
| **GET** | `/register` | Público | Formulario de registro de cliente |
|
||||
| **POST** | `/register` | Público | Crea usuario nuevo con rol `client` |
|
||||
| **GET** | `/logout` | `isAuthenticated` | Cierra la sesión y redirige a login |
|
||||
|
||||
@@ -56,6 +56,12 @@
|
||||
- **Dominio Público y Proxy Reverso:** Dominio oficial `https://soporte.sigmac.app`. El tráfico público ingresa por la WAN hacia `Servidor-web` CT 109 (`192.168.10.109` Apache 2.4.66), que enruta hacia el upstream interno `http://192.168.10.160:3008/` confirmado por SIAX Monitor (`/api/ports`).
|
||||
- **Inventario MCP de Infraestructura:** Registrado oficialmente como **Servicio ID 35** (`category: application`, `type: webapp`, `status: ACTIVE`, `url: https://soporte.sigmac.app`).
|
||||
|
||||
10. **Estrategia Multicanal de Autenticación y Mascota Bot de Soporte:**
|
||||
- **Clientes de la Plataforma:** Autentican directamente contra la API central de Telcotronics `API-SIGMA-WEBCONTROL` (`http://192.168.10.160:3002/api/auth/login` con fallback a `https://api.siax-system.net/api/auth/login`). Al validar credenciales, se realiza aprovisionamiento o actualización transparente en `help_desk.users` (`provider='webcontrol'`) y se inicia sesión con rol `client`.
|
||||
- **Nuevos Clientes (Social OAuth):** Integración nativa con Google Identity Services (GIS) verificando ID Tokens contra `https://oauth2.googleapis.com/tokeninfo`, y Facebook OAuth vía Graph API. Auto-aprovisiona usuarios como clientes sin fricción.
|
||||
- **Personal Técnico y Staff:** La consola de inicio de sesión local MariaDB queda reservada exclusivamente para el personal operativo (`superadmin`, `admin`, `agent`). Se bloquea el acceso de clientes comunes por la consola técnica.
|
||||
- **Identidad Visual y Mascota:** Rediseño integral de la página de inicio de sesión (`/login`) con control segmentado de pestañas (Clientes vs Personal Técnico) y la mascota oficial robot de soporte (`/img/bot-soporte.svg`, `/img/bot-soporte.png` y `/img/bot-soporte-512.png`) con animación de levitación y estado activo 24/7.
|
||||
|
||||
---
|
||||
|
||||
## Base de Datos
|
||||
@@ -65,7 +71,7 @@
|
||||
- **Base de datos:** `help_desk`
|
||||
- **Tablas:**
|
||||
- `companies`: Gestión de empresas/organizaciones (id, name, slug, plan, max_users, max_tickets, is_active, timestamps).
|
||||
- `users`: Usuarios de cada empresa (id, company_id, nombre, email, password, rol, is_active, invite_token, invited_by, timestamps).
|
||||
- `users`: Usuarios de cada empresa (id, company_id, nombre, email, password [nullable], rol, provider, provider_id, avatar_url, is_active, invite_token, invited_by, timestamps).
|
||||
- `departments`: Departamentos de soporte por empresa (id, company_id, nombre, descripcion, created_at).
|
||||
- `tickets`: Tickets de soporte (id, company_id, user_id, department_id, asunto, mensaje, status, prioridad, assigned_to, timestamps).
|
||||
- `ticket_respuestas`: Mensajes e hilo de conversación de cada ticket (id, ticket_id, user_id, mensaje, created_at).
|
||||
|
||||
@@ -34,3 +34,13 @@
|
||||
- **Alcance:** Despliegues de la aplicación a producción (`desplegar.sh`, `servers.conf`).
|
||||
- **Restricción:** El despliegue debe utilizar `servers.conf` (copiado desde `servers.conf.example`, nunca commiteado). No utilizar `sudo` interactivo ni contraseñas fijas en el servidor; el ciclo de vida, reinicio y auditoría de salud debe coordinarse a través de la API REST de **SIAX Monitor** en `http://$HOST:8080` (`POST /api/apps/HELPDESK/restart` y `GET /api/apps/HELPDESK/status`).
|
||||
- **Motivo:** Cumplimiento de la política oficial de despliegue del ecosistema Telcotronics (Prompt 8 y Feedback #25).
|
||||
|
||||
## 8. Estrategia Multicanal de Autenticación
|
||||
- **Alcance:** Autenticación de usuarios, modelos de acceso y vistas de login (`/login`, `/auth/google`, `/auth/facebook`, `User.js`, `views/auth/login.ejs`).
|
||||
- **Restricción:**
|
||||
1. **Clientes de la Plataforma:** Autentican contra la API central `API-SIGMA-WEBCONTROL` (`http://192.168.10.160:3002/api/auth/login` con fallback a `https://api.siax-system.net/api/auth/login`), aprovisionándose automáticamente con rol `client`.
|
||||
2. **Nuevos Clientes:** Autenticación social federada vía Google OAuth (GIS tokeninfo) y Facebook OAuth (Graph API), aprovisionándose como clientes.
|
||||
3. **Personal Técnico y Staff:** Acceso local sobre MariaDB `help_desk.users` reservado exclusivamente para roles operativos (`superadmin`, `admin`, `agent`). Queda prohibido el ingreso de clientes por la consola técnica.
|
||||
4. **Seguridad de Credenciales:** La tabla `users` soporta contraseñas opcionales (`NULL`) para cuentas federadas, rastreando `provider`, `provider_id` y `avatar_url`.
|
||||
- **Motivo:** Integración sin fisuras con el ecosistema de cuentas SIGMA WebControl y simplificación de onboarding para clientes externos.
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
| Fecha | Tarea / Entregable | Responsable | Archivos Afectados |
|
||||
|---|---|---|---|
|
||||
| 2026-10-20 | **Autenticación Multicanal (WebControl + Google/Facebook + Local Staff) y Rediseño de Login con Mascota Bot** | Agente IA | `views/auth/login.ejs`, `public/css/style.css`, `public/img/bot-soporte.*`, `routes/auth.js`, `models/User.js`, `config/setup.js`, `.env*` |
|
||||
| 2026-10-20 | **Configuración de VirtualHost Apache y SSL para `soporte.sigmac.app`** | Pablinux / Agente IA | Servidor-web (`192.168.10.109`), Apache 2.4.66 |
|
||||
| 2026-10-18 | **Integración de Despliegue con SIAX Monitor y Dominio `soporte.sigmac.app`** | Agente IA | `desplegar.sh`, `servers.conf.example`, `init.sh`, `.gitignore`, `README.md`, `agents.md`, MCP ID 35 |
|
||||
| 2026-10-17 | **Despliegue a Producción en CT 132 (`server-webapps`)** | Agente IA | `desplegar.sh`, `siax-app-HELPDESK.service`, `/home/user_apps/apps/help_desk` |
|
||||
|
||||
Reference in New Issue
Block a user