Saltare alla navigazione

Login Google su iOS

GitHub

In questa guida, imparerai a configurare il login con Google con Capgo Social Login per iOS. Assumo che tu abbia già letto il Guida di 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 di Console di Google
    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 sull'opzione create credentials

      Crea credenziali di accesso nel Console di Google
    4. Seleziona OAuth client ID

      Scegli l'opzione di ID del client OAuth nella menu di creazione di credenziali
    5. Seleziona il Application type per 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

        Target dell'app in navigatore dei progetti di Xcode
      3. Assicurati di essere su Targets -> App

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

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

        Campo ID Bundle nella forma di creazione del client iOS del Console di Google
    7. Opzionalmente, 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 dialogo
    10. Apri il nuovo client iOS creato

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

      Dettagli del Client ID mostranti l'ID del client e l'ID del client invertito da copiare
  2. Modifica l'elenco delle informazioni del tuo app

    1. Apre Xcode e trova il Info.plist file

      il file Info.plist nel proiettore di navigazione di Xcode
    2. Clicca con il tasto destro su questo file e apriolo come fonte code

      Menu di scelta rapida con l'opzione Apri come fonte Code
    3. Alla fine del tuo Plist file, vedrai un </dict> tag

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

      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 passo precedente

      Info.plist con il client ID effettivamente invertito inserito nei schemi di URL
    6. Salva il file con Command + S

  3. Modifica il AppDelegate.swift

    1. Apri il file AppDelegate.swift nel navigatore del progetto Xcode

      Il file AppDelegate.swift in Xcode progetto navigatore
    2. Inserisci import GoogleSignIn in cima al file

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

      La funzione di apertura dell'applicazione originale openURL in AppDelegate
    4. Modifica la funzione per 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)
      }
      La funzione di apertura dell'applicazione modificata con gestione di 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
      }
      })
      })

      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 modo online:

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

      Per il 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 il tuo'applicazione

    1. Costruisci il tuo'app e eseguilo 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-screen. Quando si utilizzano entrambi i plugin insieme, il webview di accesso Google verrà interrotto dallo schermo di privacy.

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

Se si utilizza 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 il dettaglio di implementazione in @capgo/capacitor-login-social, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometria-nativa per il dettaglio di implementazione in @capgo/capacitor-biometria-nativa, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.