Saltar al contenido

Configuración de inicio de sesión de Google

GitHub

In this guide, you will learn how to setup Google Login with Capgo Social Login. You will need the following in order to setup Google Login:

  • Una cuenta de Google

Una cuenta de Google

Configuración general

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

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

      Barra de búsqueda de Google Console
    2. Buscar por OAuth consent screen y haga clic en él

      Search results showing OAuth consent screen option
    3. Configure la pantalla de consentimiento

      Haga clic en create

      pantalla de consentimiento OAuth con opciones de External y Internal
  5. Rellene la información sobre su aplicación
    1. Comencemos con el App Information

      App Information section showing App name and User support email fields
      • Por favor, ingresa tus App Name
      • Nota user support email
      1. Tú puedes agregar el logo de la aplicación.

        App logo upload section in OAuth consent screen
      2. Tú DEBERÍAS configura la App domain

        Configuración de dominio de la aplicación con campo de dominios autorizados
      3. Tú Tener que proporcionar la dirección de correo electrónico del desarrollador

        proporcionar la dirección de correo electrónico del desarrollador
      4. Haga clic en save and continue

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

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

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

      Botón Guardar y Continuar en la pantalla de alcances
  7. Agregar un usuario de prueba
    1. Haz clic en add users Agregar usuarios en la sección de usuarios de prueba
    2. Ingresa tu correo electrónico de Google, presiona enter y haz clic add Email input field and Add button for test users
    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 a la consola en la parte inferior de la página de completado
  9. Presenta tu aplicación para su 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 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íneaAcceso fuera de línea
Requiere un backend❌✅
Token de acceso de larga duración❌✅
Easy setup✅❌

Si todavía no sabes cuál elegir, considera los siguientes escenarios.

  1. Quiere que el usuario inicie sesión, inmediatamente después de lo cual le emitirá un JWT personalizado. Su aplicación NO llamará a las API de Google

    In este caso, elija acceso en línea.

  2. Su aplicación llamará a algunas API de Google desde el cliente, pero nunca desde el servidor.

    In este caso, elija acceso en línea.

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

    In este caso, elija acceso en línea.

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

    In este caso, elija 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:

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

La idea es bastante sencilla. Envías una solicitud simple a GET solicitud a https://www.googleapis.com/oauth2/v3/tokeninfo and this returns you whether the token is valid or not and if it it is, it gives you the email of the user. It also gives you some other info about the user token

Información de respuesta de token de Google OAuth Playground con detalles del usuario

From there, you could issue the user with your own JWT or issue some sort of session cookie. The possibilities are endless, for the final auth implementation.

Si deseas llamar a Google API’, te recomiendo buscar Jardín de juego de OAuth 2.0 de GoogleDesde allí, puede ver fácilmente qué APIs puede llamar.

Usando acceso sin conexión con su propio backend

Sección titulada “Usando acceso sin conexión con su propio backend”

Para utilizar el acceso sin conexión, necesitará lo siguiente:

  • Un servidor HTTP

En este ejemplo, utilizaré las siguientes tecnologías para proporcionar el acceso sin conexión 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());
}
}

Nota lo que falta aquí: no hay SocialLogin.refresh() Actualiza en la aplicación. Eso es intencional. En modo offline de Google, se refresca después de que tu backend intercambia. serverAuthCode y almacena el token de actualización de manera segura.

Si estás utilizando Configuración de inicio de sesión de Google para planificar la autenticación y los flujos de cuenta, conecte 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-secuencial para el detalle de implementación en @capgo/capacitor-clave-secuencial @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Dos factor de autenticación para el detalle de implementación en Dos factor de autenticación.