Saltare al contenuto

Login di Google su iOS

In questo guide, imparerai a configurare l'accesso Google con Capgo Social Login per iOS. Assumo che tu abbia già letto la configurazione di base.

In questa parte, imparerai a configurare l'accesso Google in iOS.

  1. Crea un ID client iOS nel console di Google

    1. Clicca sulla barra di ricerca

      Barra di ricerca di Google Console
    2. Cerca credentials e clicca sul APIs and Services uno (numero 2 nella schermata)

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

      Pulsante di creazione credenziali in Google Console
    4. Seleziona OAuth client ID

      L'opzione ID client OAuth nella menu di creazione credenziali
    5. Seleziona il Application type per iOS

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

      1. Apri Xcode

      2. Clicca due volte su App

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

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

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

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

    8. Dopo aver riempito tutti i dettagli, clicca create

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

      Bottone OK sulla conferma di creazione del codice cliente
    10. Apre la nuova client iOS appena creata

      La nuova client iOS appena creata nella lista delle credenziali
    11. Copia i seguenti dati

      Dettagli del codice cliente mostrando il codice cliente e il codice cliente inverso 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 dei progetti di Xcode

      Clicca con il tasto destro su questo file e apriolo come fonte __CAPGO_KEEP_0__
    2. Menu a discesa con l'opzione Apri come fonte code con il tasto destro del mouse

      Right-click menu showing Open As Source Code option
    3. In fondo al tuo Plist file, vedrai un </dict> tag

      Chiusura tag di dizionario in file Info.plist
    4. Inserisci il seguente frammento prima della chiusura </dict> tag

      Info.plist con schemi URL code inseriti prima della chiusura del tag di dizionario
      <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 ID client reale effettivamente inserito nei schemi URL
    6. Salva il file con Command + S

  3. Modifica il AppDelegate.swift

    1. Apri il file AppDelegate

      il file AppDelegate.swift nel navigatore dei progetti di Xcode
    2. Inserisci import GoogleSignIn all'inizio del file

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

      Applicazione originale openURL funzione 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)
      }
      Applicazione modificata openURL funzione con gestione GoogleSignIn
    5. Salva il file con Command + S

  4. Configura il login 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
      }
      })
      })

      Impostazione 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. Implementa la funzione di accesso. Crea un pulsante e esegui il seguente code al click

      Per il modo online:

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

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

    1. Costruisci l'app e eseguila cap sync

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

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

Il plugin di accesso Google è incompatibile con capacitor/privacy-screenQuando si utilizzano entrambi i plugin insieme, il webview di accesso Google verrà interrotto dallo schermo di privacy.

Soluzione alternativa: Chiamata await PrivacyScreen.disable(); prima di chiamare la funzione di accesso:

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