Aller au contenu

Google Login sur iOS

GitHub

Dans ce guide, vous apprendrez à configurer Google Login avec Capgo Social Login pour iOS. Je pars du principe que vous avez déjà lu le guide de configuration générale.

Utiliser la connexion Google sur iOS

section intitulée « Using Google login on iOS »

Dans cette partie, vous apprendrez à configurer la connexion Google sur iOS.

  1. Créez un client ID iOS dans la console Google

    1. Cliquez sur la barre de recherche

      Barre de recherche de la Google Console
    2. Recherchez credentials et cliquez sur APIs and Services celui-ci (numéro 2 sur la capture d'écran)

      Résultats de recherche affichant l'option credentials avec APIs et Services mis en évidence
    3. Cliquez sur create credentials

      Bouton Create credentials dans la console Google
    4. Sélectionnez OAuth client ID

      Option OAuth client ID dans le menu de création de credentials
    5. Sélectionnez l’ Application type vers iOS

      Sélection du type d'application avec l'option iOS mise en évidence
    6. Trouvez le bundle ID

      1. Ouvrez Xcode

      2. Double-cliquez sur App

        App target in Xcode project navigator
      3. Assurez-vous d'être dans la Targets -> App

        section Targets de Xcode avec l'application sélectionnée
      4. Trouvez votre Bundle Identifier

        champ Bundle Identifier dans les paramètres du projet Xcode
      5. Retournez sur la console Google et collez votre Bundle Identifier en Bundle ID

        Champ Bundle ID dans le formulaire de création du client iOS Google Console
    7. Optionnellement, ajoutez votre App Store ID ou Team ID dans le client ID si vous avez publié votre app sur l'App Store

    8. Après avoir rempli tous les détails, cliquez sur le create

      bouton Create en bas du formulaire de création du client iOS
    9. Cliquez OK

      bouton OK sur la boîte de dialogue de confirmation du client ID créé
    10. Ouvrez le client iOS nouvellement créé

      Client iOS nouvellement créé dans la liste des credentials
    11. Copiez les données suivantes

      Détails du Client ID affichant le Client ID et le client ID inversé à copier
  2. Modifiez le fichier Info.plist de votre app

    1. Ouvrez Xcode et trouvez le Info.plist fichier

      Fichier Info.plist dans le navigateur de projet Xcode
    2. Faites un clic droit sur ce fichier et ouvrez-l’en tant que source code

      Menu contextuel affichant l'option Open As Source Code
    3. En bas de votre Plist fichier, vous verrez une </dict> balise

      Balise de fermeture dict dans le fichier Info.plist
    4. Insérez le fragment suivant juste avant la balise de fermeture </dict> balise

      Info.plist avec les URL schemes code insérés avant la balise de fermeture dict
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Modifiez le YOUR_DOT_REVERSED_IOS_CLIENT_ID à la valeur copiée à l'étape précédente

      Info.plist avec l'ID client inversé inséré dans les URL schemes
    6. Enregistrez le fichier avec Command + S

  3. Modifiez le AppDelegate.swift

    1. Ouvrez l'AppDelegate

      fichier AppDelegate.swift dans le navigateur de projet Xcode
    2. Insérez import GoogleSignIn en haut du fichier

      AppDelegate.swift avec l'import GoogleSignIn ajouté
    3. Trouvez le func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) fonction

      Fonction application openURL originale dans AppDelegate
    4. Modifiez la fonction pour qu'elle ressemble à ceci

      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)
      }
      Fonction application openURL modifiée avec la gestion de GoogleSignIn
    5. Enregistrez le fichier avec Command + S

  4. Configurez la connexion Google dans votre code JavaScript/TypeScript

    1. Importer SocialLogin et Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Appelez la méthode initialize (à n'appeler qu'une seule fois)

      Configuration de base (mode en ligne - recommandé pour la plupart des apps) :

      // onMounted is Vue specific
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Default mode
      }
      })
      })

      Configuration avancée avec des client IDs supplémentaires :

      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. Implémentez la fonction de connexion. Créez un bouton et exécutez le code suivant au clic

      Pour le mode en ligne :

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

      Pour le mode hors ligne :

      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. Testez votre application

    1. Compilez votre app et lancez-la cap sync

    2. Si tout est correctement configuré, le flux de connexion Google devrait fonctionner normalement

      Démo du flux de connexion Google sur iOS montrant le processus de connexion et l'authentification réussie

Le plugin Google Login est incompatible avec @capacitor/privacy-screen. Lorsque vous utilisez les deux plugins ensemble, la webview de la connexion Google sera interrompue par l'écran de confidentialité.

Workaround: Appelez await PrivacyScreen.disable(); avant d'appeler la fonction de connexion :

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

Si vous utilisez Google Login sur iOS pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login pour les détails d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.