Vai al contenuto

Google Login su iOS

In questa guida imparerai come configurare Google Login con Capgo Social Login per iOS. Suppongo che tu abbia già letto la guida di configurazione generale.

In questa parte imparerai come configurare Google login su iOS.

  1. Crea un ID client iOS nella console Google

    1. Clicca sulla barra di ricerca

      Barra di ricerca della Console Google
    2. Cerca credentials e clicca su quello di APIs and Services (numero 2 nello screenshot)

      Risultati di ricerca che mostrano l'opzione credentials con APIs and Services evidenziato
    3. Clicca su create credentials

      Pulsante Crea credenziali nella Console Google
    4. Seleziona OAuth client ID

      Opzione OAuth client ID nel menu di creazione delle credenziali
    5. Seleziona il Application type come iOS

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

      1. Apri Xcode

      2. Doppio clic su App

        Target App nel navigatore di progetto di Xcode
      3. Assicurati di essere su Targets -> App

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

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

        Campo Bundle ID nel modulo di creazione del client iOS della Console Google
    7. Facoltativamente, aggiungi il tuo App Store ID o Team ID nell’ID client se hai pubblicato la tua app su App Store

    8. Dopo aver compilato tutti i dettagli, clicca su create

      Pulsante Crea in fondo al modulo di creazione del client iOS
    9. Clicca su OK

      Pulsante OK nella finestra di conferma della creazione dell'ID client
    10. Apri il client iOS appena creato

      Client iOS appena creato nell'elenco delle credenziali
    11. Copia i seguenti dati

      Dettagli dell'ID client che mostrano l'ID client e l'ID client invertito da copiare
  2. Modifica il file Info.plist della tua app

    1. Apri Xcode e trova il file Info.plist

      File Info.plist nel navigatore di progetto di Xcode
    2. Clicca con il tasto destro su questo file e aprilo come codice sorgente

      Menu contestuale che mostra l'opzione Apri come codice sorgente
    3. In fondo al tuo file Plist, vedrai un tag </dict>

      Tag dict di chiusura nel file Info.plist
    4. Inserisci il seguente frammento appena prima del tag di chiusura </dict>

      Info.plist con il codice degli schemi URL inserito prima del tag dict di chiusura
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Cambia YOUR_DOT_REVERSED_IOS_CLIENT_ID con il valore copiato nel passaggio precedente

      Info.plist con l'ID client invertito effettivo inserito negli schemi URL
    6. Salva il file con Command + S

  3. Modifica AppDelegate.swift

    1. Apri AppDelegate

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

      AppDelegate.swift con l'import di GoogleSignIn aggiunto
    3. Trova la funzione func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:])

      Funzione originale application openURL in AppDelegate
    4. Modifica la funzione in modo che appaia così

      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 application openURL modificata con la gestione di GoogleSignIn
    5. Salva il file con Command + S

  4. Configura Google login nel tuo codice JavaScript/TypeScript

    1. Importa SocialLogin e Capacitor

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

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

      // onMounted è specifico di Vue
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Modalità predefinita
      }
      })
      })

      Configurazione avanzata con ID client aggiuntivi:

      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: 'YOUR_WEB_CLIENT_ID', // Opzionale: per il supporto della piattaforma web
      iOSClientId: 'YOUR_IOS_CLIENT_ID', // Obbligatorio: dal passaggio 1
      iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Opzionale: uguale a webClientId, necessario per alcune funzionalità avanzate
      mode: 'online' // 'online' o 'offline'
      }
      })
      })
    3. Implementa la funzione di login. Crea un pulsante ed esegui il seguente codice al clic

      Per la modalità online:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // gestisci la risposta - contiene i dati dell'utente
      console.log(JSON.stringify(res))

      Per la modalità offline:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {
      forceRefreshToken: true // Consigliato per la modalità offline
      }
      })
      // res contiene serverAuthCode, non i dati dell'utente
      // Invia serverAuthCode al tuo backend per ottenere le informazioni dell'utente
      console.log('Server auth code:', res.result.serverAuthCode)
  5. Testa la tua applicazione

    1. Compila la tua app ed esegui cap sync

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

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

Incompatibilità con il Plugin Privacy Screen

Section titled “Incompatibilità con il Plugin Privacy Screen”

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

Soluzione alternativa: Chiama 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: {}
});