Configuración de Google Login
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Introducción
Sección titulada “Introducción”En esta guía, aprenderás a configurar Google Login con Capgo Social Login. Para configurar Google Login, necesitarás lo siguiente:
- Una cuenta de Google
Configuración general
Sección titulada “Configuración general”En esta parte, configurarás la pantalla de inicio de sesión que muestra Google.
- Por favor, ve a console.cloud.google.com
- Haz clic en el selector de proyectos
- Si aún no tienes un proyecto, por favor crea un nuevo proyecto.
- Haz clic en
New project
- Nombra tu proyecto y haz clic en
Create
- Asegúrate de estar en el proyecto correcto
- Haz clic en
- Comienza a configurar el
OAuth consent screen-
Haz clic en la barra de búsqueda
-
Busca
OAuth consent screeny haz clic en él
-
Configura la pantalla de consentimiento
Haz clic en
create
-
- Completa la información de tu app
-
Empecemos con la
App Information
- Por favor, escribe tu
App Name - Introduce el
user support email
-
Usted PUEDES añadir el logotipo de la app.
-
Usted DEBERÍAS configurar la
App domain
-
Usted TENER QUE proporcionar el correo electrónico del desarrollador
-
Haz clic en
save and continue
- Por favor, escribe tu
-
- Configurar los scopes
-
Haz clic en
add or remove scopes
-
Selecciona los siguientes scopes y haz clic en
update
-
Haz clic
save and continue
-
- Agregar un usuario de prueba
- Haz clic en
add users
- Ingresa tu correo de Google, presiona Enter y haz clic en
add
- Haz clic
save and continue
- Haz clic en
- Haz clic
back to dashboard
- Envía tu app para verificación
Diferencias entre acceso online y offline
Sección titulada “Diferencias entre acceso online y offline”Hay varias formas de usar Google Login con Capacitor. Aquí tienes una tabla que resume las diferencias entre ambas:
| Acceso online | Acceso offline | |
|---|---|---|
| Requiere un backend | ❌ | ✅ |
| Token de acceso de larga duración | ❌ | ✅ |
| Easy setup | ✅ | ❌ |
Si aún no sabes cuál elegir, ten en cuenta los siguientes escenarios:
-
Quieres que el usuario inicie sesión y, inmediatamente después, le emitirás un JWT personalizado. Tu app NO llamará a las APIs de Google
En este caso, elige acceso online.
-
Tu app llamará a algunas APIs de Google desde el cliente, pero nunca desde el backend
En este caso, elige acceso online
-
Tu app llamará a algunas APIs de Google desde el backend, pero solo cuando el usuario esté usando activamente la app
En este caso, elige acceso online
-
Tu app revisará periódicamente el calendario del usuario, incluso cuando no esté usando activamente la app
En este caso, elige acceso sin conexión
Un backend de ejemplo para acceso online
Sección titulada «Un backend de ejemplo para acceso en línea»En esta parte del tutorial, te muestro cómo validar al usuario en tu backend.
Este ejemplo será muy simple y se basará en las siguientes tecnologías:
Puedes encontrar el code de este ejemplo aquí
Como puedes ver:
La idea es bastante simple. Envías una simple GET solicitud a https://www.googleapis.com/oauth2/v3/tokeninfo y esta te devuelve si el token es válido o no, y si lo es, te da el email del usuario. También te proporciona otra información sobre el token del usuario
A partir de ahí, podrías emitir al usuario tu propio JWT o algún tipo de cookie de sesión. Las posibilidades son infinitas para la implementación final de autenticación.
Si quieres llamar a las API de Google, recomendaría encarecidamente que eches un vistazo a El OAuth 2.0 Playground de Google. Desde ahí puedes ver fácilmente qué APIs puedes llamar.
Uso de acceso offline con tu propio backend
Sección titulada “Usar acceso offline con tu propio backend”Para usar el acceso offline necesitarás lo siguiente:
- Un servidor HTTP
En este ejemplo, usaré las siguientes tecnologías para proporcionar acceso sin conexión en mi app:
-
LowDb (una base de datos sencilla)
El code de este ejemplo se puede encontrar aquí
En cuanto al code del cliente, se ve así:
import { Capacitor } from '@capacitor/core';import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() { await SocialLogin.initialize({ google: { webClientId: '[redacted]', iOSClientId: '[redacted]', iOSServerClientId: 'The same value as webClientId', mode: 'offline' // <-- important } }) const response = await SocialLogin.login({ provider: 'google', options: { forceRefreshToken: true // <-- important } })
if (response.provider === 'google') { const result = response.result as GoogleLoginOfflineResponse const res = await fetch(`${baseURL}/auth/google_offline`, { headers: { "Content-Type": "application/json" }, body: JSON.stringify({ serverAuthCode: result.serverAuthCode, platform: Capacitor.getPlatform() }), method: "POST" })
if (res.status !== 200) { popoutStore.popout("Full google login failed", "check console"); return }
const { jwt } = await res.json(); const userinfo = await fetch(`${baseURL}/auth/get_google_user`, { headers: { Authorization: `Bearer ${jwt}` } }) if (userinfo.status !== 200) { popoutStore.popout("Full google (userinfo) login failed", "check console"); return } popoutStore.popout("userinfo res", await userinfo.text()); }}Fíjate en lo que falta aquí: no hay SocialLogin.refresh() llamada en la app. Es intencional. En el modo offline de Google, el refresh ocurre después de que tu backend intercambia serverAuthCode y almacene el refresh token de forma segura.
Continuar desde la configuración de Google Login
Sección titulada “Continuar desde la configuración de Google Login”Si estás usando Configuración de Google Login para planificar los flujos de autenticación y de cuenta, conéctalo con Uso de @capgo/capacitor-social-login para la capacidad nativa en el uso de @capgo/capacitor-social-login, @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-social-login, @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey, @capgo/capacitor-native-biometric para el detalle de implementación en @capgo/capacitor-native-biometric, y Autenticación de dos factores para el detalle de implementación en la autenticación de dos factores.