Saltare al contenuto

Login Google su iOS

GitHub

In questo guide, imparerai a configurare il login con Google con Capgo Social Login per iOS. Assumo che tu abbia già letto la guida di configurazione generale.

In questo capitolo, imparerai a configurare il login di Google su iOS.

  1. Creare un ID client iOS nel console di Google

    1. Cliccare sulla barra di ricerca

      Barra di ricerca del console di Google
    2. Cercare credentials e cliccare sul APIs and Services uno (numero 2 nella schermata)

      Risultati della ricerca mostranti l'opzione credenziali con API e Servizi evidenziati
    3. Cliccare sul create credentials

      Pulsante di creazione delle credenziali nel console di Google
    4. Seleziona OAuth client ID

      l'opzione del ID del client OAuth nel menu di creazione delle credenziali
    5. Seleziona il Application type per iOS

      Scegli il tipo di applicazione con l'opzione iOS evidenziata
    6. Trova l'ID del bundle

      1. Apri Xcode

      2. Doppio clic su App

        App target nel navigatore dei progetti Xcode
      3. Assicurati di essere su Targets -> App

        Sezione Targets in Xcode con App selezionata
      4. Trova il tuo Bundle Identifier

        Campo Identificatore Bundle nelle impostazioni del progetto Xcode
      5. Torna al Console di Google e incolla il tuo Bundle Identifier in Bundle ID

        Campo Identificatore Bundle nella forma di creazione del client iOS del Console di Google
    7. Facoltativamente, aggiungi il tuo App Store ID o Team ID nel campo ID client se hai pubblicato il tuo app su App Store

    8. Dopo aver riempito tutti i dettagli, clicca create

      Pulsante Crea in fondo alla forma di creazione del client iOS
    9. Clicca OK

      Pulsante OK sulla conferma di creazione dell'ID client
    10. Apri il nuovo client iOS creato

      Nuovo client iOS creato nella lista delle credenziali
    11. Copia i seguenti dati

      Dettagli ID client mostranti ID client e ID client inverso da copiare
  2. Modifica il file Info.plist della tua app

    1. Apri Xcode e trova il Info.plist file

      il file Info.plist nel navigatore del progetto Xcode
    2. Clicca con il tasto destro su questo file e aprilo come fonte code

      Menu a tendina mostrante l'opzione Apri come fonte Code
    3. Al fondo del tuo Plist file, vedrai una </dict> tag

      Tag di chiusura in Info.plist file
    4. Inserisci il seguente frammento prima della tag di chiusura </dict> Info.plist con URL schemes __CAPGO_KEEP_0__ inserito prima della tag di chiusura

      Info.plist with URL schemes code inserted before closing dict tag
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Cambia il YOUR_DOT_REVERSED_IOS_CLIENT_ID in il valore copiato nel passaggio precedente

      Info.plist con il client ID reale inserito nelle URL dei schemi
    6. Salva il file con Command + S

  3. Modifica il AppDelegate.swift

    1. Apri il AppDelegate

      File AppDelegate.swift nel progetto navigator di Xcode
    2. Inserisci import GoogleSignIn all'inizio del file

      File AppDelegate.swift con l'importazione di GoogleSignIn aggiunta
    3. Cerca il func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) funzione

      Funzione di apertura dell'applicazione originale in AppDelegate
    4. Modifica la funzione per farla assomigliare a questa

      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)
      }
      Funzione di apertura dell'applicazione modificata con gestione di GoogleSignIn
    5. Salva il file con Command + S

  4. Configura il login con Google nel tuo JavaScript/TypeScript code

    1. Importa SocialLogin e Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Chiamare il metodo di inizializzazione (questo dovrebbe essere chiamato solo una volta)

      Configurazione base (modalità online - consigliata per la maggior parte degli app):

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

      Configurazione avanzata con ID client aggiuntivi:

      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. Implement the login function. Create a button and run the following code on click

      Implementa la funzione di accesso. Crea un pulsante e esegui il seguente __CAPGO_KEEP_0__ al click

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

      Per modalità 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. Testa la tua applicazione

    1. Costruisci l'applicazione e eseguila cap sync

    2. Se hai fatto tutto correttamente, dovresti vedere il flusso di login di Google che funziona correttamente

      Demo del flusso di login di Google su iOS che mostra il processo di accesso e l'autenticazione riuscita

Il plugin di accesso Google è incompatibile con @capacitor/privacy-screen. Quando si utilizzano entrambi i plugin insieme, la schermata di login web di Google verrà interrotta dalla schermata di privacy.

Soluzione di contorno: Chiamare await PrivacyScreen.disable(); prima di chiamare la funzione di login:

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

Se stai utilizzando Google Login su iOS per pianificare l'autenticazione e le flussi di account, connettilo con Usando @capgo/capacitor-login-social per la capacità nativa in Usando @capgo/capacitor-login-social, @capgo/capacitor-login-social per la dettaglio di implementazione in @capgo/capacitor-login-social, @capgo/capacitor-passkey per la dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometric-nativo per la dettaglio di implementazione in @capgo/capacitor-biometric-nativo, e L'autenticazione a due fattori per la dettaglio di implementazione in L'autenticazione a due fattori.