ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 KiB
| id | title | type | status | priority | epic | story_points | created_date | updated_date |
|---|---|---|---|---|---|---|---|---|
| US-AUTH-003 | Login con Google | User Story | Done | Alta | OQI-001 | 5 | 2025-12-05 | 2026-01-04 |
US-AUTH-003: Login con Google
Version: 1.0.0 Fecha: 2025-12-05 Estado: ✅ Implementado Story Points: 5 Prioridad: P0 (Crítica) Épica: OQI-001
Historia de Usuario
Como visitante de Trading Platform Quiero poder iniciar sesión con mi cuenta de Google Para acceder rápidamente sin crear nuevas credenciales
Criterios de Aceptación
AC-001: Botón de Google visible
Dado que estoy en la página de login o registro Cuando veo las opciones de inicio de sesión Entonces debería ver un botón "Continuar con Google" claramente visible
AC-002: Redirección a Google
Dado que hago click en "Continuar con Google" Cuando se inicia el flujo OAuth Entonces debería ser redirigido a la página de autorización de Google
AC-003: Autorización exitosa (usuario nuevo)
Dado que autorizo el acceso en Google Y mi email de Google no está registrado en Trading Platform Cuando Google me redirige de vuelta Entonces debería:
- Crear una nueva cuenta automáticamente
- Usar mis datos de Google (nombre, email, foto)
- Marcar mi email como verificado
- Iniciar sesión automáticamente
- Ser redirigido al dashboard
AC-004: Autorización exitosa (usuario existente)
Dado que autorizo el acceso en Google Y mi email de Google ya está registrado en Trading Platform Cuando Google me redirige de vuelta Entonces debería:
- Vincular Google a mi cuenta existente
- Iniciar sesión automáticamente
- Ser redirigido al dashboard
AC-005: Cancelación de autorización
Dado que hago click en "Continuar con Google" Cuando cancelo la autorización en Google Entonces debería:
- Ser redirigido a la página de login
- Ver un mensaje "Autorización cancelada"
AC-006: Error de Google
Dado que hago click en "Continuar con Google" Cuando ocurre un error con Google Entonces debería:
- Ser redirigido a la página de login
- Ver un mensaje "Error al conectar con Google. Intenta de nuevo."
AC-007: Desvinculación de Google
Dado que tengo Google vinculado a mi cuenta Y tengo otro método de autenticación activo Cuando intento desvincular Google desde configuración Entonces debería poder desvincularlo exitosamente
AC-008: Protección de último método
Dado que Google es mi único método de autenticación Cuando intento desvincularlo Entonces debería ver un mensaje "No puedes eliminar tu único método de acceso"
Flujo Visual
┌──────────────────────────────────────────────────────────────────────────┐
│ │
│ PASO 1: Click en Google │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Inicia sesión en Trading Platform │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────┐│ │
│ │ │ 🔵 Continuar con Google → ││ │
│ │ └──────────────────────────────────────────────────────────────┘│ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ PASO 2: Autorización en Google │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────────────────┐ │ │
│ │ │ Google │ │ │
│ │ │ │ │ │
│ │ │ Trading Platform quiere acceder a tu cuenta de Google │ │ │
│ │ │ │ │ │
│ │ │ Esto permitirá a Trading Platform: │ │ │
│ │ │ • Ver tu dirección de correo electrónico │ │ │
│ │ │ • Ver tu información personal básica │ │ │
│ │ │ │ │ │
│ │ │ [Cancelar] [Permitir] │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ PASO 3: Redirección exitosa │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────┐│ │
│ │ │ ││ │
│ │ │ ⏳ Completando inicio de sesión... ││ │
│ │ │ ││ │
│ │ └──────────────────────────────────────────────────────────────┘│ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ PASO 4: Dashboard │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ¡Bienvenido, Juan! 👋 │ │
│ │ │ │
│ │ Dashboard... │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
Datos Obtenidos de Google
| Campo | Uso |
|---|---|
id |
provider_user_id en oauth_accounts |
email |
Email del usuario (si no tiene) |
verified_email |
Marcar email como verificado |
given_name |
Nombre del usuario |
family_name |
Apellido del usuario |
picture |
Avatar del usuario |
Notas Técnicas
Configuración Google Cloud Console
- Crear proyecto en Google Cloud Console
- Habilitar Google+ API
- Configurar OAuth consent screen
- Crear OAuth 2.0 credentials
- Agregar redirect URIs autorizados
Variables de Entorno
GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxx
GOOGLE_CALLBACK_URL=https://api.trading.com/auth/oauth/google/callback
Scopes Solicitados
const scopes = ['profile', 'email'];
Frontend
- Componente:
apps/frontend/src/modules/auth/components/SocialLoginButtons.tsx - Callback:
apps/frontend/src/modules/auth/pages/AuthCallback.tsx
Backend
- Service:
apps/backend/src/modules/auth/services/oauth.service.ts - Endpoint:
POST /api/v1/auth/oauth/google
Errores Comunes
| Error | Causa | Solución |
|---|---|---|
invalid_client |
Client ID incorrecto | Verificar configuración |
redirect_uri_mismatch |
URL no autorizada | Agregar URL en Google Console |
access_denied |
Usuario canceló | Mostrar mensaje amigable |