Saltar al contenido

Configuración de Google Login

GitHub

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

En esta parte, configurarás la pantalla de inicio de sesión que muestra Google.

  1. Por favor, ve a console.cloud.google.com
  2. Haz clic en el selector de proyectos Selector de proyectos de Google Console
  3. Si aún no tienes un proyecto, por favor crea un nuevo proyecto.
    1. Haz clic en New project Botón New Project en Google Console
    2. Nombra tu proyecto y haz clic en Create Pantalla para nombrar el proyecto con campo de nombre y botón Create
    3. Asegúrate de estar en el proyecto correcto Nombre del proyecto en el selector indicando la selección correcta
  4. Comienza a configurar el OAuth consent screen
    1. Haz clic en la barra de búsqueda

      Barra de búsqueda de Google Console
    2. Busca OAuth consent screen y haz clic en él

      Resultados de búsqueda con la opción OAuth consent screen
    3. Configura la pantalla de consentimiento

      Haz clic en create

      Selección del tipo de usuario en la pantalla de consentimiento de OAuth con opciones External e Internal
  5. Completa la información de tu app
    1. Empecemos con la App Information

      Sección App Information con los campos App name y User support email
      • Por favor, escribe tu App Name
      • Introduce el user support email
      1. Usted PUEDES añadir el logotipo de la app.

        App logo upload section in OAuth consent screen
      2. Usted DEBERÍAS configurar la App domain

        sección de configuración de dominio de la app con el campo de dominios autorizados
      3. Usted TENER QUE proporcionar el correo electrónico del desarrollador

        Sección de información de contacto del desarrollador con campo de correo
      4. Haz clic en save and continue

        Botón Guardar y continuar en la parte inferior del formulario
  6. Configurar los scopes
    1. Haz clic en add or remove scopes

      Botón para añadir o quitar scopes en la pantalla de configuración
    2. Selecciona los siguientes scopes y haz clic en update

      Diálogo de selección de scopes con email y profile seleccionados
    3. Haz clic save and continue

      Botón Guardar y continuar en la pantalla de scopes
  7. Agregar un usuario de prueba
    1. Haz clic en add users Add users button in test users section
    2. Ingresa tu correo de Google, presiona Enter y haz clic en add Campo de correo y botón Agregar para usuarios de prueba
    3. Haz clic save and continue Botón Guardar y continuar en la pantalla de usuarios de prueba
  8. Haz clic back to dashboard Botón Volver al dashboard en la parte inferior de la página de finalización
  9. Envía tu app para verificación

Hay varias formas de usar Google Login con Capacitor. Aquí tienes una tabla que resume las diferencias entre ambas:

Acceso onlineAcceso 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:

  1. 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.

  2. Tu app llamará a algunas APIs de Google desde el cliente, pero nunca desde el backend

    En este caso, elige acceso online

  3. 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

  4. 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

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:

VS Code mostrando la autenticación de Google code que verifica tokens

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

Google OAuth Playground mostrando la respuesta de información del token con detalles 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.

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:

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.