Saltar al contenido

Iniciar sesión con Google en iOS

En esta guía, aprenderá a configurar el inicio de sesión de Google con Capgo Inicio de sesión social para iOS. Supongo que ya ha leído la Configuración general.

En esta parte, aprenderá a configurar el inicio de sesión de Google en iOS.

  1. Crear un ID de cliente de iOS en la consola de Google

    1. Haga clic en la barra de búsqueda

      Barrador de búsqueda de Google Console
    2. Buscar credentials y hacer clic en el APIs and Services uno (número 2 en la captura de pantalla)

      Resultados de búsqueda mostrando la opción de credenciales con APIs y Servicios destacados
    3. Hacer clic en el create credentials

      botón de credenciales Create en Google Console
    4. Seleccionar OAuth client ID

      la opción de ID de cliente OAuth en el menú de creación de credenciales
    5. Seleccionar el Application type para iOS

      selección de tipo de aplicación con opción de iOS destacada
    6. Encuentra el ID del paquete

      1. Abrir Xcode

      2. Haz clic dos veces en App

        Objetivo de la aplicación en el navegador de proyectos de Xcode
      3. Asegúrate de que estás en Targets -> App

        Sección de objetivos en Xcode con la aplicación seleccionada
      4. Encuentra tu Bundle Identifier

        Campo de identificador de paquete en la configuración de proyecto de Xcode
      5. Vuelve a la consola de Google y pega tu Bundle Identifier en Bundle ID

        Campo de ID de paquete en la forma de creación de cliente de iOS de la consola de Google
    7. Opcionalmente, agrega tu App Store ID o Team ID en el ID del cliente si has publicado tu aplicación en App Store

    8. Después de rellenar todos los detalles, haz clic create

      Boton de Crear en la parte inferior del formulario de creación de cliente iOS
    9. Haz clic OK

      Botón Aceptar en el diálogo de confirmación del ID del cliente creado
    10. Abre el cliente iOS recién creado

      El cliente iOS recién creado en la lista de credenciales
    11. Copia los siguientes datos

      Detalles del ID del cliente mostrando el ID del cliente y el ID del cliente invertido para copiar
  2. Modifica el archivo Info.plist de tu aplicación

    1. Abra Xcode y encuentre el Info.plist archivo

      Archivo Info.plist en el navegador de proyectos de Xcode
    2. Haga clic derecho en este archivo y abra como fuente code

      Menú contextual mostrando la opción Abrir como fuente Code
    3. En la parte inferior de su Plist archivo, verás un </dict> tag

      Cierre de etiqueta de diccionario en el archivo Info.plist
    4. Inserte el siguiente fragmento justo antes de la etiqueta de cierre. </dict> etiqueta

      Info.plist con esquemas de URL code insertados antes de la etiqueta de cierre de diccionario
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Cambie el YOUR_DOT_REVERSED_IOS_CLIENT_ID hasta el valor copiado en el paso anterior

      Información.plist con el ID del cliente real insertado en los esquemas de URL
    6. Guarde el archivo con Command + S

  3. Modifique el AppDelegate.swift

    1. Abra el AppDelegate

      archivo AppDelegate.swift en el navegador de proyectos de Xcode
    2. Inserte import GoogleSignIn en la parte superior del archivo

      AppDelegate.swift con GoogleSignIn import agregado
    3. Encuentre el func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) función

      Aplicación original openURL en AppDelegate
    4. Modificar la función para que se vea así

      func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
      // Called when the app was launched with a url. Feel free to add additional processing here,
      // but if you want the App API to support tracking app url opens, make sure to keep this call
      var handled: Bool
      handled = GIDSignIn.sharedInstance.handle(url)
      if handled {
      return true
      }
      return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
      }
      Función de aplicación modificada de openURL con manejo de GoogleSignIn
    5. Guardar el archivo con Command + S

  4. Configuración de inicio de sesión de Google en tu JavaScript/TypeScript code

    1. Importar SocialLogin y Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Llamar al método de inicialización (debe llamarse solo una vez)

      Configuración básica (modo en línea - recomendado para la mayoría de las aplicaciones):

      // onMounted is Vue specific
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Default mode
      }
      })
      })

      Configuración avanzada con IDs de cliente adicionales:

      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: 'YOUR_WEB_CLIENT_ID', // Optional: for web platform support
      iOSClientId: 'YOUR_IOS_CLIENT_ID', // Required: from step 1
      iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Optional: same as webClientId, needed for some advanced features
      mode: 'online' // 'online' or 'offline'
      }
      })
      })
    3. Implemente la función de inicio de sesión. Cree un botón y ejecute el siguiente code al hacer clic

      Para el modo en línea:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response - contains user data
      console.log(JSON.stringify(res))

      Para el modo offline:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {
      forceRefreshToken: true // Recommended for offline mode
      }
      })
      // res contains serverAuthCode, not user data
      // Send serverAuthCode to your backend to get user information
      // Do not call SocialLogin.refresh() in offline mode
      console.log('Server auth code:', res.result.serverAuthCode)
  5. Pruebe su aplicación

    1. Construya su aplicación y ejecute cap sync

    2. Si ha hecho todo correctamente, debería ver el flujo de inicio de sesión de Google funcionando correctamente

      Demo del flujo de inicio de sesión de Google en iOS que muestra el proceso de inicio de sesión y la autenticación exitosa

Incompatibilidad del plugin de pantalla de privacidad

Sección titulada “Incompatibilidad del plugin de pantalla de privacidad”

El plugin de inicio de sesión de Google es incompatible con @capacitor/privacy-screenAl utilizar ambos plugins juntos, el navegador de inicio de sesión de Google se interrumpirá por la pantalla de privacidad.

Solución alternativa: Llamar await PrivacyScreen.disable(); antes de llamar a la función de inicio de sesión:

import { PrivacyScreen } from '@capacitor/privacy-screen';
import { SocialLogin } from '@capgo/capacitor-social-login';
await PrivacyScreen.disable();
await SocialLogin.login({
provider: 'google',
options: {}
});