Configuración de inicio de sesión de Google
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Introducción
Sección titulada “Introducción”En esta guía, aprenderá a configurar el inicio de sesión de Google con Capgo Inicio de sesión social. Necesitará lo siguiente para configurar el inicio de sesión de Google:
- 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 se muestra por Google.
- Por favor, ve a console.cloud.google.com
- Haz clic en el selector de proyecto
- Si no tienes un proyecto ya creado, por favor crea un nuevo proyecto.
- Haz clic en
New project
- Nombra tu proyecto y haz clic
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 ella
-
Configura la pantalla de consentimiento
Haga clic en
create
-
- Rellene la información sobre su aplicación
-
Comencemos con la sección
App Information
- Por favor, escriba su
App Name - Ingrese el
user support email
-
Tú DEBES poder agregar el logo de la aplicación.
-
Tú DEBES configure la
App domain
-
Tienes que proporcionar el correo electrónico del desarrollador sección de información de contacto del desarrollador con campo de correo electrónico
-
configure la
save and continue
- Por favor, escriba su
-
- Configurar los alcances
-
Haga clic en
add or remove scopes
-
Seleccione los siguientes alcances y haga clic
update
-
Haga clic
save and continue
-
- Agregar un usuario de prueba
- Haga clic en
add users
- Ingrese su correo electrónico de Google, presione enter y haga clic
add
- Haga clic
save and continue
- Haga clic en
- Haga clic
back to dashboard
- Presente su aplicación para verificación
Diferencias entre acceso en línea y acceso sin conexión
Diferencias entre acceso en línea y acceso en modo offlineHay varias formas de utilizar el inicio de sesión de Google con Capacitor. A continuación, se muestra una tabla que resume las diferencias entre los dos:
| Acceso en línea | Acceso en modo offline | |
|---|---|---|
| Requiere un backend | ❌ | ✅ |
| Token de acceso de larga duración | ❌ | ✅ |
| Configuración fácil | ✅ | ❌ |
Si todavía no sabes cuál debes elegir, por favor considera los siguientes escenarios:
-
Quieres que el usuario inicie sesión, inmediatamente después vas a emitirle un JWT personalizado. Tu aplicación NO llamará a las API de Google
En este caso, elija el acceso en línea.
-
Su aplicación llamará a algunas API de Google desde el cliente, pero nunca desde el servidor.
En este caso, elija el acceso en línea.
-
Su aplicación llamará a algunas API de Google desde el servidor, pero solo cuando el usuario esté utilizando la aplicación de manera activa.
En este caso, elija el acceso en línea.
-
Su aplicación verificará periódicamente el calendario del usuario, incluso cuando no esté utilizando la aplicación de manera activa.
En este caso, elija el acceso sin conexión.
Un ejemplo de servidor para el acceso en línea.
Sección titulada “Un ejemplo de servidor para el acceso en línea”.En esta parte del tutorial, mostraré cómo validar al usuario en su servidor.
Este ejemplo será muy simple y se basará en las siguientes tecnologías:
Puedes encontrar el code para este ejemplo aquí
Como puedes ver:
La idea es bastante simple. Envías una solicitud simple a GET y esto te devuelve si el token es válido o no y si lo es, te da el correo electrónico del usuario. También te da alguna otra información sobre el token del usuario https://www.googleapis.com/oauth2/v3/tokeninfo Google OAuth Playground mostrando información de respuesta de token con detalles del usuario
Si deseas llamar a Google __CAPGO_KEEP_0__’, te recomendaría fuertemente que mires a
API Jardín de Juego de OAuth 2.0 de Google. Desde allí, puedes ver fácilmente qué APIs puedes llamar.
Usando acceso en línea con tu propio backend
Sección titulada “Usando acceso en línea con tu propio backend”Para usar el acceso en línea, necesitarás lo siguiente:
- Un servidor HTTP
En este ejemplo, utilizaré las siguientes tecnologías para proporcionar el acceso en línea en mi aplicación:
-
LowDb (una base de datos simple)
La code para este ejemplo se puede encontrar aquí
En cuanto al cliente code, 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íjese en qué está faltando aquí: no hay SocialLogin.refresh() llamada en la aplicación. Eso es intencional. En modo de línea aérea de Google, el refresco ocurre después de que su servidor intercambia serverAuthCode y almacena el token de refresco de manera segura.