¿El login de Lovable te manda a localhost? Cómo arreglarlo
Por qué el inicio de sesión, la confirmación y el restablecimiento de contraseña de tu app de Lovable terminan en localhost o en la vista previa, y qué ajustar.
Read in English →
Si después de iniciar sesión tu app de Lovable manda a la gente a localhost o a la dirección vieja de la vista previa, casi nunca es culpa de tus pantallas: es la configuración de autenticación. El sistema de login (el de Supabase, que es el que usa Lovable) envía al usuario al Site URL cada vez que la dirección que pidió tu app no está en la lista de Redirect URLs permitidas, y un proyecto nuevo de Supabase arranca con http://localhost:3000 como Site URL. Pon tu dominio real en el Site URL, agrega todas tus direcciones a la lista y, si usas credenciales propias de Google, actualízalas también.
En esta guía vas a ver cómo identificar qué enlace falla, dónde están esos dos ajustes según cómo esté armado el backend de tu proyecto, qué código puede saltárselos y cómo comprobar el arreglo antes de que lo note un cliente.
¿Por qué el login vuelve a localhost o a la vista previa?
Todo flujo que sale de tu app y vuelve (confirmar el correo, enlace mágico, restablecer contraseña, entrar con Google o Apple) necesita saber a dónde regresar. Tu app propone una dirección con el valor redirectTo. El servidor de autenticación solo la respeta si coincide con alguna entrada de la lista permitida. Si no coincide, usa el Site URL.
Por eso hay tres fallas típicas:
- Nadie cambió el Site URL. Sigue diciendo
http://localhost:3000o la direcciónlovable.app. - Tu dominio nuevo no está en las Redirect URLs. La app pide
https://tudominio.com/panel, el servidor lo rechaza y manda al Site URL. - El código tiene una dirección fija. En algún prompt quedó escrito
redirectTo: "https://mi-app.lovable.app"y todo apunta ahí, digan lo que digan los ajustes.
¿Qué tipo de backend usa tu proyecto?
Una app de Lovable guarda a sus usuarios en uno de dos lugares, y de eso depende quién mantiene estos ajustes al día.
| Backend integrado (Lovable Cloud) | Tu propio proyecto de Supabase | |
|---|---|---|
| Dónde están los ajustes | More → Cloud → Users → Auth settings → Advanced | Panel de Supabase → Authentication → URL Configuration |
| Site URL al publicar por primera vez | Lovable pone tu dirección lovable.app | Lovable no lo toca |
| Dominio propio | Se agrega solo a las Redirect URLs cuando el dominio queda Live | Lo agregas tú |
| Un Site URL que escribiste a mano | Se queda como lo dejaste | Se queda como lo dejaste |
La documentación de autenticación de Lovable lo describe así. Con Lovable Cloud, el problema suele venir de un Site URL editado a mano o de un dominio que aún no está Live. Con tu propio Supabase, nada cambia si no lo cambias tú.
¿Cómo sé qué enlace está mal?
- Haz el flujo tú mismo en una ventana privada: regístrate con un correo de prueba, pide restablecer la contraseña o entra con Google.
- En los correos, no hagas clic. Copia el enlace y pégalo en un editor de texto. Busca la parte
redirect_to=: ahí es donde va a caer el usuario. - Con Google o Apple, mira la barra de direcciones al volver. Si ves
localhost:3000o la vista previa, anótalo. - Si Google muestra una página de error con
redirect_uri_mismatch, el problema está del lado de Google. Ve directo a la sección de Google más abajo.
Si redirect_to ya muestra tu dominio y aun así terminas en localhost, falta el dominio en la lista permitida. Si redirect_to ya dice localhost, el origen es el Site URL o el código.
¿Cómo corrijo el Site URL y las Redirect URLs?
En Lovable Cloud
Abre More → Cloud → Users → Auth settings → Advanced. Pon como Site URL tu dominio principal, por ejemplo https://tudominio.com, y revisa que la lista de Redirect URLs incluya:
https://tudominio.com/**https://www.tudominio.com/**si también sirves la versión conwww- tu dirección
lovable.app, si quieres que el login siga funcionando ahí
También puedes pedirle a Lovable en el chat del proyecto que agregue tu dominio a las URL de redirección. En cualquier caso, confirma el resultado en esa pantalla.
En tu propio proyecto de Supabase
En el panel de Supabase entra a Authentication y luego a URL Configuration. Cambia el Site URL de http://localhost:3000 a tu dominio de producción y agrega las mismas Redirect URLs.
Ojo con los comodines, según la guía de Supabase sobre redirect URLs: * coincide con caracteres hasta el siguiente . o /, mientras que ** coincide con todo, incluidas rutas más profundas. https://tudominio.com/* permite /login pero no /auth/callback. Para tu dominio usa /** y, cuando puedas, entradas exactas.
¿El código puede estar ignorando los ajustes?
Sí, y conviene revisarlo aunque los ajustes ya estén bien. Abre el código (en la vista Code de Lovable o en tu copia de GitHub) y busca localhost, lovable.app y redirectTo. Estas son las llamadas que importan:
supabase.auth.signUp({ email, password, options: { emailRedirectTo: `${window.location.origin}/bienvenida` } })
supabase.auth.resetPasswordForEmail(email, { redirectTo: `${window.location.origin}/nueva-contrasena` })
supabase.auth.signInWithOAuth({ provider: "google", options: { redirectTo: window.location.origin } })
Con window.location.origin, la app siempre pide volver a la dirección en la que está el usuario. Una dirección de vista previa escrita a mano en cualquiera de estas llamadas va a seguir mandando gente a la vista previa.
Si personalizaste las plantillas de correo, revisa también que el enlace use {{ .RedirectTo }} y no {{ .SiteURL }}; si no, el correo ignora la dirección que pidió tu app.
¿Y el inicio de sesión con Google?
Si Google está en modo "Managed by Lovable", Lovable se encarga de esa parte. Si usas tus propias credenciales de Google, Google también tiene que confiar en la nueva dirección:
- En Lovable Cloud, Lovable muestra la URL de redirección de tu dominio en More → Cloud → Users → Auth settings → Google, pero no la marca. Agrégala como Authorized redirect URI en Google Cloud Console, márcala en Lovable y guarda.
- En tu propio Supabase, la URI autorizada en Google es la de Supabase,
https://<ref-del-proyecto>.supabase.co/auth/v1/callback. El regreso a tu dominio lo controlan las Redirect URLs de Supabase, no Google.
Google compara el texto exacto: una barra final de más o http en lugar de https basta para que falle.
¿Cómo compruebo que quedó bien?
Prueba en una ventana privada y desde cero:
- Regístrate con un correo nuevo y abre el enlace de confirmación. Debes llegar a tu dominio.
- Pide restablecer la contraseña y completa el proceso.
- Entra con Google (u otro proveedor que ofrezcas) y cierra sesión.
- Repite una vez desde el celular, donde las sesiones guardadas suelen esconder problemas.
Los correos enviados antes del arreglo siguen teniendo el enlace viejo. Pide a los usuarios afectados que soliciten uno nuevo.
¿Cómo evito que vuelva a pasar?
- Elige un solo dominio principal. Lovable redirige los demás dominios conectados al principal; usa esa misma dirección como Site URL.
- Ten una lista para cada cambio de dominio: Site URL, Redirect URLs, URI de Google o Apple, y cualquier enlace de pagos o correos que incluya la dirección.
- Prohíbe las direcciones fijas en el conocimiento del proyecto: "Arma siempre las URL de redirección con
window.location.origin."
El resto de los pasos para salir con tu dominio están en la guía para poner un dominio propio en tu app de Lovable o Bolt, y el problema hermano de los correos, en cómo enviar correos desde una app de Lovable.
Respuestas rápidas
¿Por qué el login funciona en la vista previa y no en mi dominio? Porque la vista previa ya está permitida y tu dominio no. Agrégalo a las Redirect URLs y revisa el Site URL.
¿Tengo que tocar el código? Solo si tiene una dirección fija. Busca localhost y lovable.app y cámbialos por window.location.origin.
¿Qué significa redirect_uri_mismatch? Que usas credenciales propias de Google y la URI exacta no está autorizada en Google Cloud Console.
¿Sigue rebotando al lugar equivocado?
Si los ajustes se ven bien y la gente sigue cayendo donde no debe, seguramente hay un segundo problema en el código, como una página de retorno que nunca lee la sesión. Haz el chequeo gratuito de tu app, mira cómo arreglamos apps de Lovable o cuéntanos qué pasa: una persona te responde en un día hábil.


