Aller directement au contenu

Google Login sur iOS

GitHub

Dans ce guide, vous apprendrez à configurer l'authentification Google avec Capgo Social Login pour iOS. Je suppose que vous avez déjà lu le guide de configuration général.

Dans cette partie, vous apprendrez à configurer l'authentification Google sur iOS.

  1. Créez un identifiant de client iOS dans le console Google

    1. Cliquez sur la barre de recherche

      Barre de recherche de la console Google
    2. Recherchez credentials et cliquez sur le APIs and Services un (le numéro 2 sur l'écran d'écran)

      Résultats de recherche montrant l'option de crédentials avec APIs et Services mis en surbrillance
    3. Cliquez sur le create credentials

      Créez un bouton de crédentials dans la console Google
    4. Sélectionnez OAuth client ID

      L'option d'identifiant de client OAuth dans le menu de création de crédentials
    5. Sélectionnez le Application type à iOS

      Sélection de type d'application avec l'option iOS mise en surbrillance
    6. Trouvez l'ID de l'application

      1. Ouvrez Xcode

      2. Double-cliquez sur App

        Cible d'application dans le navigateur de projet Xcode
      3. Assurez-vous d'être sur Targets -> App

        Section Cibles dans Xcode avec l'application sélectionnée
      4. Trouvez votre Bundle Identifier

        Champ Identifiant de l'application dans les paramètres de projet Xcode
      5. Retournez à la console Google et collez votre Bundle Identifier dans Bundle ID

        Champ ID de l'application dans la forme de création de client iOS de Google Console
    7. Optionnellement, ajoutez votre App Store ID ou Team ID dans l'ID de client si vous avez publié votre application sur l'App Store

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

      Bouton Créer en bas de la forme de création de client iOS
    9. Cliquez OK

      Sur le bouton OK sur le dialogue de confirmation de l'ID de client créé
    10. Ouvrez le client iOS créé récemment

      Client iOS créé récemment dans la liste des identifiants
    11. Copiez les données suivantes

      Détails de l'ID de client affichant l'ID de client et l'ID de client inversé à copier
  2. Modifiez les informations de votre application Info.plist

    1. Ouvrez Xcode et trouvez le Info.plist fichier

      fichier Info.plist dans le navigateur de projet Xcode
    2. Appuyez sur le bouton droit sur ce fichier et ouvrez-le en source code

      Menu contextuel montrant l'option Ouvrir en source Code
    3. En bas de votre Plist fichier, vous verrez un </dict> tag

      Tag de fermeture de dictionnaire dans le fichier Info.plist
    4. Insérez le fragment suivant juste avant le tag de fermeture </dict> Fichier Info.plist avec les schémas URL __CAPGO_KEEP_0__ insérés avant le tag de fermeture

      Info.plist with URL schemes code inserted before closing dict tag
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. à la valeur copiée dans l'étape précédente YOUR_DOT_REVERSED_IOS_CLIENT_ID Changer la valeur à la valeur copiée dans l'étape précédente.

      Info.plist avec l'ID client réel inséré à l'envers dans les schémas URL
    6. Enregistrez le fichier avec Command + S

  3. Modifiez le AppDelegate.swift

    1. Ouvrez le fichier AppDelegate

      AppDelegate.swift dans le navigateur de projet Xcode
    2. Insérez import GoogleSignIn à la tête du fichier

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

      Application d'origine openURL fonction 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 d'application modifiée openURL avec prise en charge de GoogleSignIn
    5. Enregistrez le fichier avec Command + S

  4. Configurer le login Google dans votre JavaScript/TypeScript code

    1. Importer SocialLogin et Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Appeler la méthode d'initialisation (ceci doit être appelé qu'une seule fois)

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

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

      Configuration avancée avec des identifiants de client 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 code lors du 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. Construirez votre application et exécutez-la cap sync

    2. Si vous avez fait tout correctement, vous devriez voir le flux de connexion Google fonctionner correctement

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

Incompatibilité du plugin de screen de confidentialité

Section intitulée “Incompatibilité du plugin de screen de confidentialité”

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

Solution de contournement : Appeler 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 l'authentification et les flux de compte, connectez-le à En utilisant @capgo/capacitor-social-login pour la capacité native en utilisant En utilisant @capgo/capacitor-social-login, @capgo/capacitor-connexion sociale pour les détails d'implémentation dans @capgo/capacitor-connexion sociale, @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-authentification biométrique native pour les détails d'implémentation dans @capgo/capacitor-authentification biométrique native, et L'authentification à deux facteurs pour les détails d'implémentation dans L'authentification à deux facteurs.