📄 Descripción
Se debe implementar la funcionalidad de inicio de sesión con Google en MagicVS, permitiendo a los usuarios autenticarse utilizando su cuenta de Google mediante OAuth2.
El objetivo es ofrecer una alternativa de login más rápida y segura, evitando la necesidad de registro manual y mejorando la experiencia de usuario.
Esta funcionalidad incluirá tanto la integración en backend (Spring Boot) como en frontend (Angular).
🎯 Objetivos
- Permitir autenticación mediante cuenta de Google
- Integrar OAuth2 en el backend
- Obtener información básica del usuario desde Google
- Crear o vincular automáticamente el usuario en la base de datos
- Generar token de autenticación (JWT) tras login exitoso
- Integrar botón de login con Google en frontend
🛠️ Alcance
Incluye:
- Integración con Google OAuth2
- Backend (Spring Security OAuth2)
- Frontend (botón e integración con flujo de login)
- Creación automática de usuario si no existe
No incluye:
- Login con otros proveedores (Facebook, GitHub, etc.)
- Gestión avanzada de cuentas vinculadas
- Desvinculación de cuentas
- Roles avanzados
🛠️ Tareas
Backend
Frontend (Angular)
📂 Datos obtenidos de Google
- email
- nombre
- imagen de perfil (opcional)
- id de Google (para vinculación)
📡 Flujo esperado
- Usuario hace clic en "Iniciar sesión con Google"
- Se redirige a Google OAuth2
- Usuario acepta permisos
- Google redirige al backend
- Backend:
- obtiene datos del usuario
- crea o busca usuario en BD
- genera JWT
- Backend redirige al frontend con token
- Frontend guarda token y autentica al usuario
📡 Endpoint esperado
Spring maneja automáticamente el endpoint:
GET /oauth2/authorization/google
🧩 Estructura esperada
Backend
- config/SecurityConfig
- auth/CustomOAuth2UserService
- auth/OAuth2SuccessHandler
- user/User
Frontend
- auth/
- auth.service.ts
- login.component
- Botón de Google login
🔐 Consideraciones de seguridad
- No almacenar datos sensibles innecesarios
- Validar correctamente el token recibido
- Usar HTTPS en producción
- No exponer credenciales de Google en el repositorio
✅ Criterios de aceptación
- El usuario puede iniciar sesión con Google
- Si el usuario no existe, se crea automáticamente
- Si existe, se autentica correctamente
- Se genera y devuelve un JWT válido
- El frontend recibe y almacena el token
- El usuario queda autenticado en la aplicación
📌 Notas
- Crear credenciales en Google Cloud Console:
- Configurar correctamente los redirect URIs
- Usar scopes básicos (email, profile)
- Preparar la arquitectura para añadir más proveedores en el futuro
- Este issue mejora significativamente la experiencia de usuario y seguridad del sistema
📄 Descripción
Se debe implementar la funcionalidad de inicio de sesión con Google en MagicVS, permitiendo a los usuarios autenticarse utilizando su cuenta de Google mediante OAuth2.
El objetivo es ofrecer una alternativa de login más rápida y segura, evitando la necesidad de registro manual y mejorando la experiencia de usuario.
Esta funcionalidad incluirá tanto la integración en backend (Spring Boot) como en frontend (Angular).
🎯 Objetivos
🛠️ Alcance
Incluye:
No incluye:
🛠️ Tareas
Backend
spring-boot-starter-oauth2-client)application.ymloapplication.propertiescon credenciales de GoogleOAuth2UserServicepersonalizadoFrontend (Angular)
📂 Datos obtenidos de Google
📡 Flujo esperado
📡 Endpoint esperado
Spring maneja automáticamente el endpoint:
🧩 Estructura esperada
Backend
Frontend
🔐 Consideraciones de seguridad
✅ Criterios de aceptación
📌 Notas