Pasar 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 Social Login. Necesitará lo siguiente para configurar el inicio de sesión de Google:

  • Una cuenta de Google

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

  1. Por favor, vaya a console.cloud.google.com
  2. Seleccione el selector de proyecto Selector de Proyecto de Google Console
  3. Si no tiene un proyecto creado, por favor crear un nuevo proyecto.
    1. Haga clic en New project Botón de proyecto nuevo en Google Console
    2. Denomine su proyecto y haga clic Create Pantalla de nombramiento del proyecto mostrando el campo de nombre y el botón Crear
    3. Asegúrese de estar en el proyecto correcto Nombre de proyecto mostrando en el selector indicando selección de proyecto correcta
  4. Comience a configurar el OAuth consent screen
    1. Haz clic en la barra de búsqueda

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

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

      Selección del tipo de usuario de pantalla de consentimiento de OAuth con opciones de Exterior e Interno create

      y haga clic en ella
  5. Rellene la información sobre su aplicación
    1. Comencemos con la 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 App Information

      Por favor, escriba su
      • Advertencia App Name
      • Nota user support email
      1. Usted CAN agregar el logo de la aplicación.

        Nota
      2. DEBERÍA configurar el Configuración de dominio de la aplicación con campo de dominios autorizados App domain

        Nota
      3. DEBES proporcionar la dirección de 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

      Agregar o eliminar botones de ámbito en la pantalla de configuración de ámbitos
    2. Seleccione los siguientes ámbitos y haga clic update

      Diálogo de selección de ámbitos con ámbitos de correo electrónico y perfil seleccionados
    3. Haga clic save and continue

      Haga clic en el botón de guardar y continuar en la pantalla de ámbitos
  7. Agregar un usuario de prueba
    1. Haga clic en add users Botón de agregar usuarios en la sección de usuarios de prueba
    2. Introduzca su correo electrónico de Google, haga clic en introdúcete 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 Haga clic en el botón de guardar y continuar en la pantalla de usuarios de prueba
  8. Haz clic back to dashboard Botón de regreso a la consola en la parte inferior de la página de finalización
  9. Envía tu aplicación para su verificación

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

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

Existen varias formas de utilizar el inicio de sesión de Google con Capacitor. Aquí hay una tabla que resume las diferencias entre los dos:

Acceso en líneaAcceso 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:

  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. Su aplicación llamará a algunas APIs de Google desde el backend, pero solo cuando el usuario esté utilizando activamente la aplicación

    En este caso, elija el acceso en línea

  4. Su aplicación verificará periódicamente el calendario del usuario, incluso cuando él 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 allí

Como puedes ver:

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

La idea es bastante sencilla. 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 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 con tu 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 __CAPGO_KEEP_0__’, te recomiendo fuertemente que mires en

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 sin conexión con tu propio backend

Usando acceso sin conexión con tu propio backend

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

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:

El code para este ejemplo se puede encontrar aquí

As for the client code, it looks like this:

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é falta aquí: no hay ninguna SocialLogin.refresh() llamada en la aplicación. Eso es intencional. En modo offline de Google, la actualización ocurre después de que su servidor intercambia y almacena el token de actualización de manera segura. serverAuthCode 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 con Usando @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login, Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login, @capgo/capacitor-login social para los detalles de implementación en @capgo/capacitor-login social @capgo/capacitor-clave de acceso para los detalles de implementación en @capgo/capacitor-clave de acceso @capgo/capacitor-autenticación biométrica nativa para los detalles de implementación en @capgo/capacitor-autenticación biométrica nativa, y autenticación de dos factores para los detalles de implementación en autenticación de dos factores.