Saltar al contenido

Configuración de inicio de sesión de Google

GitHub

En esta guía, aprenderás a configurar el inicio de sesión con Google mediante Capgo Social Login. Necesitarás lo siguiente para configurar el inicio de sesión con Google:

  • Una cuenta de Google

Configuración general

Nota

Por favor, ve a

  1. console.cloud.google.com Haz clic en el selector de proyecto
  2. console.cloud.google.com Selector de Proyecto de Google Console
  3. Si no tienes un proyecto ya creado, por favor crear un nuevo proyecto.
    1. Haga clic en New project botón Nuevo Proyecto en Google Console
    2. Nombra tu proyecto y haz clic Create Pantalla de nombre del proyecto mostrando campo de nombre y botón Crear
    3. Asegúrate de que estás en el proyecto correcto Nombre del proyecto mostrando en el selector indicando selección de proyecto correcta
  4. Comienza a configurar el OAuth consent screen
    1. Haga clic en la barra de búsqueda

      Barra de búsqueda de Google Console
    2. Buscar y OAuth consent screen haz clic en ella

      Resultados de búsqueda mostrando opción de pantalla de consentimiento de OAuth
    3. Configura la pantalla de consentimiento

      Haz clic en create

      Selección del tipo de usuario de pantalla de consentimiento de OAuth con opciones de Exterior e Interno
  5. Rellena la información sobre tu aplicación
    1. Comencemos con lo App Information

      Sección de información de la aplicación que muestra el nombre de la aplicación y el campo de correo electrónico de soporte del usuario
      • Por favor, escriba su App Name
      • Introduzca el user support email
      1. Usted PUEDE agregue el logo de la aplicación.

        Sección de carga de logo de la aplicación en pantalla de consentimiento OAuth
      2. DEBES configurar la sección de configuración de dominio de la aplicación con el campo de dominios autorizados App domain

        Nota
      3. TENES QUE proporcionar el correo electrónico del desarrollador

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

        Botón de guardar y continuar en la parte inferior de la forma
  6. Configura los alcances
    1. Haz clic en add or remove scopes

      Botón de agregar o eliminar alcances en la pantalla de configuración de alcances
    2. Selecciona los siguientes alcances y haz clic en update

      Selección de ámbito con correos electrónicos y perfiles seleccionados
    3. Haga clic save and continue

      Botón Guardar y Continuar en pantalla de ámbitos
  7. Agregar un usuario de prueba
    1. Haga clic en add users Botón Agregar usuarios en sección de usuarios de prueba
    2. Ingrese su correo electrónico de Google, presione enter y haga clic add Campo de entrada de correo electrónico y botón Agregar para usuarios de prueba
    3. Haga clic save and continue Botón Guardar y Continuar en pantalla de usuarios de prueba
  8. Haga clic back to dashboard Botón Volver a la consola en la parte inferior de la página de finalización
  9. Envíe su aplicación para su verificación

Diferencias entre acceso en línea y acceso sin conexión

Sección titulada “Diferencias entre acceso en línea y acceso sin conexión”

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

Acceso en líneaAcceso sin conexión
Requiere un backend
Token de acceso persistente
Configuración fácil

En este caso, elige acceso en línea.

  1. Tu aplicación llamará a algunas API de Google desde el cliente, pero nunca desde el backend

    En este caso, elige acceso en línea

  2. Tu aplicación llamará a algunas API de Google desde el backend, pero solo cuando el usuario esté utilizando activamente la aplicación

    En este caso, elige acceso en línea

  3. Tu aplicación llamará a algunas API de Google desde el backend, pero solo cuando el usuario esté utilizando activamente la aplicación

    En este caso, elige acceso en línea

  4. Su aplicación verificará periódicamente el calendario del usuario, incluso cuando no esté utilizando activamente la aplicación

    En este caso, elija el acceso en línea

En esta parte del tutorial, mostraré cómo validar al usuario en su backend

Este ejemplo será muy simple y se basará en las siguientes tecnologías:

Puede encontrar el code para este ejemplo aquí

Como puede ver:

Muestra de VS Code con autenticación de Google code que verifica tokens

La idea es bastante sencilla. Envías una solicitud simple a GET y esta 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 algunas otras informaciones 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

Desde allí, podrías emitir al usuario un JWT propio o emitir una cookie de sesión. Las posibilidades son infinitas para la implementación de autenticación final.

Si deseas llamar a Google __CAPGO_KEEP_0__’, te recomiendo fuertemente que mires a

If you do want to call Google API’s, I would strongly recommend looking at . Desde allí puedes ver fácilmente qué APIs puedes llamar.Usando acceso offline con tu propio backend

Sección titulada “Usando acceso offline con tu propio backend”

Para usar el acceso offline necesitarás lo siguiente:

Usando acceso offline con tu propio backend

  • Un servidor HTTP

En este ejemplo, utilizaré las siguientes tecnologías para proporcionar acceso en línea en mi aplicación:

El 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íjate en lo que falta aquí: no hay SocialLogin.refresh() llamada en la aplicación. Eso es intencional. En modo de línea de tiempo de Google, la actualización ocurre después de que su servidor intercambia serverAuthCode y almacena el token de actualización de manera segura.

Sigue adelante desde Configuración de inicio de sesión de Google

Sección titulada “Sigue adelante desde Configuración de inicio de sesión de Google”

Si estás utilizando Configuración de inicio de sesión de Google para planificar la autenticación y los flujos de cuenta, conecta Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social, Usando @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social, @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 en dos factores para el detalle de implementación en Autenticación en dos factores.