RF-009 — Autenticación federada con Google¶
| Estado | En desarrollo (rama hquintero) |
| Tipo | Configuración de provider stock + integración de storefront |
| Ubicación | medusa-config.ts — módulo Auth, provider google |
| Depende de | Módulo Auth — RF-000 |
Requisito¶
Permitir al cliente registrarse e iniciar sesión con su cuenta de Google, además del método de email y contraseña, sin que la plataforma administre ni almacene esa credencial.
Solución adoptada¶
Registrar el provider auth-google que Medusa provee de fábrica junto al provider emailpass,
ambos bajo el mismo módulo Auth. No requiere desarrollo propio en el backend: la funcionalidad
se completa con la configuración de credenciales y con el manejo del redireccionamiento en el
storefront.
sequenceDiagram
participant N as Navegador
participant SF as Storefront
participant API as Backend
participant G as Google
N->>API: POST /auth/customer/google
API-->>N: URL de autorización
N->>G: Consentimiento
G->>API: Callback con código
API->>API: Resolver o crear identidad de autenticación
API-->>SF: Token de cliente
SF->>API: Crear o recuperar el cliente con el token
Configuración¶
| Variable | Uso |
|---|---|
GOOGLE_CLIENT_ID · GOOGLE_CLIENT_SECRET |
Credenciales de la aplicación registrada en Google Cloud |
GOOGLE_CALLBACK_URL |
URL de retorno autorizada, apuntada al backend |
Requiere además incluir el origen del storefront en AUTH_CORS.
Criterios de aceptación¶
| # | Criterio |
|---|---|
| 1 | Iniciar sesión con una cuenta de Google no registrada previamente y quedar creado como cliente |
| 2 | Reingresar con la misma cuenta y recuperar el mismo cliente |
| 3 | Mantener operativo el ingreso por email y contraseña en paralelo |
Limitaciones conocidas¶
- No vincular identidades entre proveedores: un cliente registrado con email y contraseña que
intenta ingresar con Google recibe
422 Customer with this email already has an account. La identidad de Google queda creada sincustomer_iden suapp_metadatay el token se emite sinactor_id. Es comportamiento de diseño de Medusa v2, no un defecto de la configuración; su resolución exige desarrollo propio de vinculación.