Saltar al contenido

Configuración de inicio de sesión de Google

GitHub

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:

  • Cuenta de Google

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

  1. Por favor, ve a https://console.cloud.google.com
  2. Haga clic en el selector de proyecto Selector de Proyecto de Google Console
  3. Si no tienes un proyecto ya creado, por favor crea un nuevo proyecto.
    1. Haga clic en New project Botón de 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 de Crear
    3. Asegúrate de que estás en el proyecto correcto Nombre del proyecto mostrando en el selector indicando selección de proyecto correcto
  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 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 de pantalla de consentimiento OAuth con opciones de External y Internal
  5. Rellena la información sobre tu aplicación
    1. Comencemos con la sección App Information

      Información de la aplicación mostrando campos de nombre de la aplicación y correo electrónico de soporte del usuario
      • Por favor, escribe tu App Name
      • Ingrese el user support email
      1. Usted PUEDE agregar el logo de la aplicación.

        Sección de carga de logo de la aplicación en pantalla de consentimiento de 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. __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ Proporcione el correo electrónico del desarrollador

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

        Butón de Continuar y Guardar en la parte inferior de la forma
  6. Configure los alcances
    1. Haga clic en add or remove scopes

      Butón de agregar o eliminar alcances en la pantalla de configuración de alcances
    2. Seleccione los siguientes alcances y haga clic update

      Diálogo de selección de alcances con correos electrónicos y perfiles seleccionados
    3. Haga clic en save and continue

      Butón de Continuar y Guardar en la pantalla de alcances
  7. Agregue un usuario de prueba
    1. Haga clic en add users Botón de agregar usuarios en la 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 de agregar para usuarios de prueba
    3. Haga clic save and continue Botón Guardar y Continuar en la 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. Presente su aplicación para verificación

Diferencias entre acceso en línea y acceso fuera de línea

Sección titulada “Diferencias entre acceso en línea y acceso fuera de línea”

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

Acceso en líneaAcceso fuera de línea
Requiere un backend
Token de acceso largo plazo
Configuración fácil

Si todavía no sabes cuál debes elegir, por favor considera los siguientes escenarios:

  1. Quieres que el usuario se registre, inmediatamente después vas a emitirle un JWT personalizado. Tu aplicación NO llamará a las API de Google

    En este caso, elige acceso en línea.

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

  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. Tu aplicación verificará periódicamente el calendario del usuario, incluso cuando no esté utilizando activamente la aplicación

    En este caso, elige acceso sin conexión

In 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:

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

La idea es bastante simple. Envía 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 Este ejemplo será muy simple y se basará en las siguientes tecnologías:

El juego de playground de OAuth de Google mostrando información de respuesta de token con detalles del usuario

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

Si deseas llamar a Google API’, te recomendaría fuertemente echar un vistazo a El juego de playground de OAuth 2.0 de Google. Desde allí puedes ver fácilmente qué APIs puedes llamar.

Para usar el acceso offline necesitarás lo siguiente:

  • Un servidor HTTP

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

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());
}
}

Observa qué está faltando aquí: no hay SocialLogin.refresh() llamada en la aplicación. Eso es intencional. En modo offline de Google, el refresco ocurre después de que su servidor intercambia serverAuthCode y almacena el token de refresco de manera segura.

Sigue adelante desde la configuración de inicio de sesión de Google

Sección titulada “Sigue adelante desde la 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 con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-llave para el detalle de implementación en @capgo/capacitor-clave-llave @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa Autenticación en dos factores para el detalle de implementación en Autenticación en dos factores.