El login social lo habilita tu operador (organización) y cada
organización usa sus propias apps de Google/Apple/Microsoft/Meta, así el
usuario ve TU marca en la pantalla de consentimiento. Consulta qué
proveedores están activos con
GET /v1/auth/oauth/providers.1. Descubre los proveedores habilitados
Para pintar los botones correctos, tu front pregunta qué proveedores están activos y con quéclient_id:
client_id no es secreto.
2. Obtén la credencial en tu front
Cada proveedor entrega una credencial con su propio SDK. Ejemplos mínimos:- Google
- Apple
- Microsoft
- Meta (Facebook)
3. Intercambia la credencial por una sesión
201:
200 con
access_token, account_id y role (igual que el login por contraseña).
El campo type (person | company, default person) solo se usa al
crear la cuenta; se ignora si ya existe.
Cómo se decide crear vs. entrar
4. Login social y 2FA
Si la cuenta tiene OTP activo en el login (seguridad y 2FA), el login social respeta ese segundo paso: en vez de la sesión,POST /v1/auth/oauth devuelve
otp_required: true + pending_token, y completas con
POST /v1/auth/login/otp igual que en el login por contraseña.
5. Vincular y desvincular proveedores
Un usuario en sesión puede administrar sus métodos de acceso:409 last_login_method (primero define una contraseña o vincula otro
proveedor).
Errores
FAQ
¿Necesito manejar redirects u OAuth callbacks?
¿Necesito manejar redirects u OAuth callbacks?
No. El flujo de consentimiento ocurre en tu front con el SDK del
proveedor; a CBPay solo le mandas la credencial resultante. No hay
páginas de callback ni estado en el servidor.
¿Qué pasa si el proveedor no entrega email verificado?
¿Qué pasa si el proveedor no entrega email verificado?
No se vincula automáticamente por email (evita que alguien reclame el
email de otro). Se crea una cuenta independiente ligada a esa identidad;
el usuario puede añadir email/contraseña después.
¿La credencial del proveedor sirve como token de CBPay?
¿La credencial del proveedor sirve como token de CBPay?
No. La credencial del proveedor solo se usa una vez para verificarte;
todas las llamadas siguientes usan el
access_token de CBPay.