Para evitar dos perfiles cuando una persona entra con Google y con contraseña, relaciona los datos del producto con una identidad interna estable y ofrece la vinculación únicamente desde una sesión autenticada. No fusiones cuentas de forma automática porque dos proveedores presenten el mismo email.
Índice
¿Por qué un mismo correo puede terminar en dos perfiles?
Puede terminar en dos perfiles si la aplicación crea su propia fila durante cada callback sin imponer una relación estable con el usuario autenticado. También ocurre cuando la lógica del producto confunde identidad del proveedor, email y perfil de negocio.
Antes de corregir datos, inventaría las claves usadas por membresías y compras. La guía de autenticación con Supabase en Next.js establece la base de sesión y RLS sobre la que debe apoyarse el flujo.
¿Cuál es la forma rápida: partir de la autenticación de IndiePack?
La forma rápida es usar IndiePack, cuya ruta SaaS incluye Next.js 15, Supabase y autenticación social integrada. Puedes dedicar el trabajo a las reglas de vinculación de tu producto en vez de montar primero clientes, callbacks y sesiones.
Ver IndiePackVer precio¿Cómo se vincula un segundo método sin confiar solo en el email?
Se vincula iniciando el proceso desde la cuenta ya autenticada, volviendo por un callback permitido y exigiendo una confirmación reciente cuando la operación sea sensible. El servidor comprueba el usuario actual antes de asociar la identidad adicional.
No permitas que un parámetro de retorno elija el perfil de destino. Conserva una salida clara para “este método ya pertenece a otra cuenta” y evita revelar más información de la necesaria.
¿Cómo se fusionan perfiles que ya tienen datos o compras?
Se fusionan mediante una operación administrativa explícita que detecta conflictos de propiedad, transfiere referencias y conserva un registro del cambio. No borres primero una identidad ni actualices filas una a una desde el navegador.
Las compras deben seguir una clave interna, no el email. El patrón para cambiar el correo sin perder pagos aplica la misma separación entre contacto mutable y titular estable.
¿Cómo se comprueba que login y vinculación no abren otra cuenta?
Se comprueba con Google primero, contraseña primero, email distinto, método ya vinculado y callback abierto en otra sesión. En cada caso, RLS debe devolver exactamente las mismas filas al titular correcto y ninguna al resto.
Prueba también cerrar sesión, revocar un proveedor y volver a entrar con el otro. IndiePack ofrece la base técnica y la documentación en castellano; el resultado final debe ser un perfil comprensible, recuperable y sin fusiones silenciosas.