Khou.ai
Documentación de Arquitectura // Gateway Puerto 3000

API Docs & Gateway

Especificación técnica integral del API Gateway, autenticación Single Sign-On mediante cookies JWT, inyección de credenciales por proxy y endpoints RESTful disponibles para desarrolladores.

01. Topología del Reverse Proxy Unificado

El Gateway central opera en el Puerto 3000 utilizando Express + TypeScript y el motor http-proxy-middleware. Su responsabilidad es servir de único punto de entrada público, eliminando problemas de CORS inter-dominio y permitiendo que cookies HTTP-only tengan ámbito en todos los micro-frontends.

Ruta Gateway (:3000) Destino Upstream Puerto Interno Tecnología Upstream Mecanismo de Auth
/ Portal Web Corporativo :3001 Laravel 12 Puro (Blade) Lectura directa de cookie
/hunter Khou Hunter :3002 Next.js 14 App Router Middleware proxy redirect
/resume/ Khou Resume AI :3003 Vue 3 + Vite fetch(/api/auth/me) onMounted
/interview/ Khou Interview Agent :3004 Node.js + WebAudio fetch(/api/auth/me) en auth.js
/portfolio/ Khou Portfolio AI :3005 Vue 3 + Three.js fetch(/api/auth/me) onMounted
/reviewer/ Khou Code Reviewer :3006 Angular 18 SPA Angular AuthGuard
/salary/ Khou Salary Radar :3007 React 18 + Vite useEffect auth verification
/wifi/ Khou WiFi Shield :3008 Express.js Puro checkGatewayAuth() en auth.js

02. Endpoints Centrales del API Gateway

GET /api/auth/me

Inspecciona la cookie khou_session o el header Authorization: Bearer <token>. Si el JWT es válido y no ha expirado, retorna los metadatos del usuario. Si es inválido, retorna HTTP 401.

{
  "id": "usr_d6bf4f46c60b",
  "email": "isakiangel6@gmail.com",
  "name": "Miguel Ángel Carlos Rojas",
  "plan": "PRO_ENTERPRISE",
  "exp": 1788973760
}
POST /api/auth/magic-link

Genera un token de un solo uso cifrado y envía un correo electrónico al usuario con el enlace de acceso directo al producto solicitado.

// Request Body:
{
  "email": "isakiangel6@gmail.com",
  "redirectUrl": "/resume/"
}

// Response (200 OK):
{
  "success": true,
  "message": "Magic link transmitted successfully."
}
GET /api/auth/logout

Destruye la cookie khou_session configurando Max-Age=0; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT y redirige al usuario a la página de bienvenida (/). Invocado por el botón "CERRAR SESIÓN" en la barra lateral de todos los micro-frontends.

03. Especificación del Token Criptográfico (khou_session)

Tanto el Gateway (Node.js/Express) como el Portal Web (PHP/Laravel) comparten la misma clave secreta definida en AUTH_JWT_SECRET y siguen el estándar RFC 7519:

1. Header (Base64Url): {"typ": "JWT", "alg": "HS256"}
2. Payload (Base64Url): {"id": "usr_9938573", "email": "dev@khou.ai", "name": "Lead Architect", "plan": "PRO_ENTERPRISE", "exp": 1788973760}
3. Firma Digital (HMAC-SHA256): HMAC-SHA256(Header + "." + Payload, AUTH_JWT_SECRET)

Cuando el Gateway intercepta una petición hacia los microservicios, desempaqueta el token e inyecta las cabeceras x-user-id, x-user-email y x-user-plan, permitiendo que los microservicios conozcan al usuario sin tener que re-validar criptografía en cada frame.