Saltare al contenuto

Google Login su iOS

GitHub

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

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

  1. Crea un ID client iOS nel console di Google

    1. Clicca sulla barra di ricerca

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

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

      Crea credenziali
    4. Seleziona OAuth client ID

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

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

      1. Apri Xcode

      2. Doppio clic su App

        L'obiettivo dell'app in Xcode navigator
      3. Eccellenza che si assicura di essere su Targets -> App

        Sulla sezione Targets in Xcode con App selezionato
      4. Cerca il tuo Bundle Identifier

        Campo Identificatore Bundle nel Xcode project settings
      5. Torna indietro al Console di Google e incolla il tuo Bundle Identifier nel Bundle ID

        Campo Identificatore Bundle nel form di creazione del client iOS di Google Console
    7. Facoltativamente, aggiungi il tuo App Store ID o Team ID Se hai pubblicato l'app sullo Store, incolla il tuo

    8. nel campo ID del client se hai pubblicato l'app sullo Store create

      Dopo aver compilato tutti i dettagli, clicca sul pulsante di creazione in fondo al form di creazione del client iOS
    9. Clicca OK

      OK sul dialogo di conferma dell'ID del client creato
    10. Apri il nuovo client iOS creato

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

      Dettagli dell'ID del client mostrando l'ID del client e l'ID del client inverso da copiare
  2. Modifica il file Info.plist della tua app

    1. Apri Xcode e trova il file Info.plist file

      il file Info.plist nel navigatore del progetto Xcode
    2. Fai clic destro su questo file e apriolo come fonte code

      Menu a discesa destro mostrante l'opzione Apri come fonte Code
    3. In fondo al tuo Plist file, vedrai una </dict> tag

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

      Info.plist con schemi di 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 in il valore copiato nel passaggio precedente

      Info.plist con il client ID effettivo inserito nei 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 All'inizio del file

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

      La funzione di apertura dell'applicazione openURL 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 l'accesso 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)

      Configurazione base (modalità online - consigliata per le maggior parte delle 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 modalità online:

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

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

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

Problemi Noti

Problemi noti

Incompatibilità dello Schermo di Privacy del Plugin

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

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

Soluzione di emergenza: Chiamare 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: {}
});

Continua dall'accesso con Google su iOS

Sezione intitolata “Continua con Google Login su iOS”

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