Saltare al contenuto

Login con Google su iOS

GitHub

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

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

  1. Creare un ID di 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 nell'immagine)

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

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

      L'opzione ID client OAuth nella menu 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. Apre Xcode

      2. Clicca due volte su App

        L'obiettivo dell'app in Xcode navigator dei progetti
      3. Assicurati di essere nella sezione Targets -> App

        Sezione obiettivi in Xcode con l'app selezionata
      4. Cerca il tuo Bundle Identifier

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

        Campo ID Bundle nella creazione del client iOS nel form di Google Console
    7. Aggiungi optionalmente il tuo App Store ID o Team ID inserisci il codice cliente se hai pubblicato l'app sullo Store App

    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 nella finestra di conferma della creazione del client ID
    10. Apre il nuovo client iOS creato

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

      Dettagli del client ID mostrando ID client e ID client inverso per copiare
  2. Modifica il tuo file Info.plist

    1. Apre Xcode e trova il Info.plist file

      nel navigatore dei progetti di Xcode
    2. Clicca con il tasto destro su questo file e aprilo come fonte code

      Menu a discesa mostrante l'opzione Apri come fonte Code
    3. Al fondo della tua Plist il file, vedrai una tag </dict> tag

      Chiudere la voce di dizionario nella file Info.plist
    4. Chiudere il tag di dizionario in Info.plist file </dict> tag

      Info.plist con schemi URL code inseriti prima della chiusura della 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 al valore copiato nel passo precedente

      Informazioni.plist con ID del client effettivamente invertito inserito nelle schemi di URL
    6. Salva il file con Command + S

  3. Modifica il AppDelegate.swift

    1. Apri il file AppDelegate

      Il file AppDelegate.swift nel navigatore del progetto Xcode
    2. Inserisci import GoogleSignIn alla fine 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

      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 di 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 deve essere chiamato solo una volta)

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

      Per il modalità online:

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

      Per la 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'app e eseguila cap sync

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

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

Incompatibilità dello Schermo di Privacy del Plugin

Sezione intitolata “Incompatibilità dello schermo di privacy del plugin”

Il plugin di accesso Google è incompatibile con @capacitor/schermata-di-privacyQuando si utilizzano entrambi i plugin insieme, il webview di Google login verrà interrotto dalla schermata di privacy.

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

Se stai utilizzando Google Login su iOS per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzando @capgo/capacitor-login sociale per la capacità nativa in Utilizzando @capgo/capacitor-login sociale @capgo/capacitor-login sociale per il dettaglio di implementazione in @capgo/capacitor-login sociale @capgo/capacitor-chiave di accesso per i dettagli di implementazione in @capgo/capacitor-passkey @capgo/capacitor-nativo-biometrico per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.