Zum Inhalt springen

Google Login unter iOS

GitHub

In diesem Leitfaden erfahren Sie, wie Sie Google Login mit Capgo Social Login für iOS einrichten. Ich gehe davon aus, dass Sie bereits die Allgemeine Setup-Anleitung.

In diesem Teil lernst du, wie du Google Login in iOS einrichtest.

  1. Erstelle eine iOS-Client-ID in der Google Console

    1. Klicke auf die Suchleiste

      Suchleiste der Google Console
    2. Suche nach credentials und klicke auf APIs and Services eins (Nummer 2 auf dem Screenshot)

      Suchergebnisse mit der Option „Credentials“ und hervorgehobenen „APIs and Services“
    3. Klicke auf die create credentials

      Schaltfläche „Credentials erstellen“ in der Google Console
    4. Wähle OAuth client ID

      Option „OAuth-Client-ID“ im Menü zum Erstellen von Credentials
    5. Wähle die Application type zu iOS

      Anwendungstyp-Auswahl mit hervorgehobener iOS-Option
    6. Bundle-ID finden

      1. Xcode öffnen

      2. Doppelklicke auf App

        App-Target im Xcode-Projektnavigator
      3. Stelle sicher, dass du dich im Targets -> App

        Targets-Bereich in Xcode mit ausgewählter App befindest
      4. Finde dein Bundle Identifier

        Bundle-Identifier-Feld in den Xcode-Projekteinstellungen
      5. Zurück zur Google Console und deine Bundle Identifier in Bundle ID

        Bundle-ID-Feld im iOS-Client-Formular der Google Console
    7. Optional füge deine App Store ID oder Team ID in die Client-ID ein, falls du deine App im App Store veröffentlicht hast

    8. Nachdem du alle Details ausgefüllt hast, klicke auf create

      Button am Ende des iOS-Client-Erstellungsformulars erstellen
    9. Klicken OK

      OK-Button im Bestätigungsdialog für die erstellte Client-ID
    10. Öffne den neu erstellten iOS-Client

      Neu erstellter iOS-Client in der Credentials-Liste
    11. Kopiere die folgenden Daten

      Details zur Client-ID, einschließlich Client-ID und umgekehrter Client-ID zum Kopieren
  2. Info.plist deiner App anpassen

    1. Öffne Xcode und suche die Info.plist Datei

      Info.plist-Datei im Xcode Project Navigator
    2. Rechtsklick auf diese Datei und als code öffnen

      Kontextmenü mit der Option „Als Quelle öffnen Code“
    3. Am unteren Rand Ihrer Plist Datei sehen Sie ein </dict> Tag

      Schließendes dict-Tag in der Info.plist-Datei
    4. Fügen Sie das folgende Fragment direkt vor dem schließenden </dict> Tag

      Info.plist mit eingefügten URL-Schemes code vor dem schließenden dict-Tag
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Ändern Sie das YOUR_DOT_REVERSED_IOS_CLIENT_ID auf den im vorherigen Schritt kopierten Wert

      Info.plist mit der tatsächlichen reversed Client-ID in den URL Schemes
    6. Speichere die Datei mit Command + S

  3. Ändere die AppDelegate.swift

    1. Öffne die AppDelegate

      AppDelegate.swift-Datei im Xcode Project Navigator
    2. Einfügen import GoogleSignIn am Anfang der Datei

      AppDelegate.swift mit hinzugefügtem GoogleSignIn-Import
    3. Suche nach func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) Funktion

      Ursprüngliche application-openURL-Funktion in AppDelegate
    4. Ändere die Funktion wie folgt

      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)
      }
      Angepasste application-openURL-Funktion mit GoogleSignIn-Handling
    5. Speichere die Datei mit Command + S

  4. Google Login in deinem JavaScript/TypeScript code einrichten

    1. Importieren SocialLogin und Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Rufe die initialize-Methode auf (dies sollte nur einmal geschehen)

      Basis-Setup (Online-Modus – für die meisten Apps empfohlen):

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

      Erweitertes Setup mit zusätzlichen Client IDs:

      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. Implementiere die Login-Funktion. Erstelle einen Button und führe beim Klick folgenden code aus

      Für den Online-Modus:

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

      Für den Offline-Modus:

      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. Teste deine App

    1. App bauen und ausführen cap sync

    2. Wenn alles korrekt konfiguriert ist, sollte der Google-Login-Flow einwandfrei funktionieren.

      Demo des Google-Login-Flows auf iOS, die den Anmeldevorgang und die erfolgreiche Authentifizierung zeigt.

Das Google Login Plugin ist inkompatibel mit @capacitor/privacy-screen. Wenn beide Plugins gleichzeitig verwendet werden, wird der Google-Login-Webview durch den Privacy Screen unterbrochen.

Workaround: Rufe await PrivacyScreen.disable(); vor dem Aufruf der Login-Funktion:

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

Wenn du es nutzt Google Login unter iOS Um Authentifizierungs- und Account-Flows zu planen, verbinde es mit @capgo/capacitor-social-login verwenden für die native Funktion bei der Verwendung von @capgo/capacitor-social-login, @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails zur Zwei-Faktor-Authentifizierung.