Saltar al contenido
supastack
Explorar la documentación
WebTanStack Start

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /es/docs/web/google-sign-in.md (or send Accept: text/markdown).

Añadir el inicio de sesión con Google

Crea un cliente OAuth de Google Cloud gratuito y conecta «Continuar con Google» a la app.

Guía paso a paso para principiantes

Prerrequisitos: la app web corriendo en local (Lanza en 5 minutos) y una base de datos migrada para cuentas reales (Configurar la base de datos). Necesitas una cuenta de Google normal; todo aquí es gratis y lleva unos 10 minutos.

Términos rápidos: OAuth es el estándar en el que Google inicia la sesión del usuario en la página de Google y entrega una prueba a tu app. Un proyecto de Google Cloud es un contenedor en la consola de Google que guarda las credenciales de tu app. La pantalla de consentimiento OAuth es la página que Google muestra a los usuarios antes de devolverlos. Un client ID identifica tu app ante Google; el client secret es su contraseña y se queda en el servidor.

1. Crea un proyecto de Google Cloud. 2. Configura la pantalla de consentimiento. 3. Crea un cliente OAuth Web y copia su ID y secreto. 4. Pega tres valores en apps/web/.env.local y reinicia el servidor de desarrollo.

Un solo proyecto basta para todo el producto: el mismo proyecto de Google Cloud alojará después tu despliegue en Cloud Run, y el inicio de sesión móvil pasa por el mismo backend web — no creas un cliente separado por plataforma o función.

Crear el proyecto de Google Cloud

1. Abre console.cloud.google.com e inicia sesión con tu cuenta de Google.

2. Haz clic en el desplegable de proyecto de la barra superior (junto al logo de Google Cloud) y elige New Project.

3. Dale un nombre — el nombre de tu producto vale — y haz clic en Create. No se necesita organización, tarjeta ni cuenta de facturación para las credenciales de inicio de sesión.

Esperado: la consola se recarga en el nuevo proyecto y su nombre aparece en la barra superior. Reutiliza este proyecto cuando llegues a la guía de despliegue en lugar de crear otro.

Crear el cliente OAuth

1. Abre APIs & Services → Credentials → + Create Credentials → OAuth client ID.

2. Pon Application type en Web application y llámalo algo como supastack local.

3. En Authorized JavaScript origins añade http://localhost:3000. En Authorized redirect URIs añade http://localhost:3000/api/auth/callback/google — esa ruta de callback pertenece a Better Auth, el motor de autenticación por defecto del kit: {APP_URL}/api/auth/callback/google.

4. Haz clic en Create y copia el Client ID y el Client Secret del diálogo. Puedes reabrirlos en la página del cliente más tarde, pero copiarlos ahora te ahorra un paso.

Para producción crea un segundo cliente Web (recomendado) o añade a este: origen JavaScript https://yourdomain.com y URI de redirección https://yourdomain.com/api/auth/callback/google. Mantener clientes separados por entorno significa que un secreto local filtrado no puede llegar a producción.

Añadir los valores a la app

Abre apps/web/.env.local — Next.js lee este archivo, no el .env de la raíz — y escribe las tres líneas de abajo. AUTH_GOOGLE_ENABLED=true enciende el botón; el par cliente identifica tu cliente de Google Cloud.

El client secret es solo de servidor: nunca debe aparecer en una variable NEXT_PUBLIC_ o EXPO_PUBLIC_ ni subirse a Git. En producción, define los mismos tres nombres en el almacén de secretos de tu host en lugar de un archivo env.

Reinicia el servidor de desarrollo tras editar — los cambios de entorno solo se leen al arrancar.

# apps/web/.env.local
AUTH_GOOGLE_ENABLED=true
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret

Verificar y solucionar problemas

Abre http://localhost:3000/auth, haz clic en el botón de Google, completa la pantalla de consentimiento de Google y confirma que la app vuelve con la sesión iniciada.

redirect_uri_mismatch significa que la URI de redirección registrada en Google no coincide exactamente — revisa el protocolo (http vs https), el puerto y la ruta: debe terminar en /api/auth/callback/google, no en /callback/google/ ni en una variante con barra final.

Access blocked / has not completed the Google verification process significa que la pantalla de consentimiento sigue en Testing y la cuenta que inicia sesión no está en Test users — añádela en la sección Audience.

Si falta el botón de Google o el inicio de sesión sigue fallando tras editar .env.local, reinicia el servidor de desarrollo. Si el arranque falla nombrando una variable, el flag está activo sin su par de cliente completo.