Zum Inhalt springen

Google Login auf iOS

In diesem Leitfaden lernen Sie, wie Sie Google Login mit Capgo Social Login für iOS einrichten. Ich gehe davon aus, dass Sie die allgemeine Einrichtungsanleitung bereits gelesen haben.

In diesem Teil lernen Sie, wie Sie Google Login in iOS einrichten.

  1. Erstellen Sie eine iOS-Client-ID in der Google Console

    1. Klicken Sie auf die Suchleiste

      Google Console Suchleiste
    2. Suchen Sie nach credentials und klicken Sie auf die APIs and Services Option (Nummer 2 auf dem Screenshot)

      Suchergebnisse zeigen Credentials-Option mit hervorgehobenen APIs and Services
    3. Klicken Sie auf create credentials

      Credentials erstellen Schaltfläche in Google Console
    4. Wählen Sie OAuth client ID

      OAuth client ID Option im Credentials-Erstellungsmenü
    5. Wählen Sie den Application type auf iOS

      Anwendungstyp-Auswahl mit hervorgehobener iOS-Option
    6. Finden Sie die Bundle ID

      1. Öffnen Sie Xcode

      2. Doppelklicken Sie auf App

        App Target im Xcode Projekt-Navigator
      3. Stellen Sie sicher, dass Sie sich bei Targets -> App befinden

        Targets Bereich in Xcode mit App ausgewählt
      4. Finden Sie Ihre Bundle Identifier

        Bundle Identifier Feld in Xcode Projekteinstellungen
      5. Gehen Sie zurück zur Google Console und fügen Sie Ihre Bundle Identifier in Bundle ID ein

        Bundle ID Feld im Google Console iOS Client-Erstellungsformular
    7. Optional fügen Sie Ihre App Store ID oder Team ID zur Client-ID hinzu, wenn Sie Ihre App im App Store veröffentlicht haben

    8. Nachdem Sie alle Details ausgefüllt haben, klicken Sie auf create

      Create Schaltfläche am unteren Ende des iOS Client-Erstellungsformulars
    9. Klicken Sie auf OK

      OK Schaltfläche im Client-ID erstellt Bestätigungsdialog
    10. Öffnen Sie den neu erstellten iOS-Client

      Neu erstellter iOS-Client in Credentials-Liste
    11. Kopieren Sie die folgenden Daten

      Client-ID Details zeigen Client-ID und umgekehrte Client-ID zum Kopieren
  2. Ändern Sie die Info.plist Ihrer App

    1. Öffnen Sie Xcode und finden Sie die Info.plist Datei

      Info.plist Datei im Xcode Projekt-Navigator
    2. Rechtsklicken Sie auf diese Datei und öffnen Sie sie als Quellcode

      Rechtsklick-Menü zeigt Als Quellcode öffnen Option
    3. Am Ende Ihrer Plist Datei sehen Sie ein </dict> Tag

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

      Info.plist mit URL-Schemas-Code vor schließendem dict Tag eingefügt
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Ändern Sie die YOUR_DOT_REVERSED_IOS_CLIENT_ID in den im vorherigen Schritt kopierten Wert

      Info.plist mit tatsächlicher umgekehrter Client-ID in URL-Schemas eingefügt
    6. Speichern Sie die Datei mit Command + S

  3. Ändern Sie die AppDelegate.swift

    1. Öffnen Sie das AppDelegate

      AppDelegate.swift Datei im Xcode Projekt-Navigator
    2. Fügen Sie import GoogleSignIn am Anfang der Datei ein

      AppDelegate.swift mit GoogleSignIn Import hinzugefügt
    3. Finden Sie die func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) Funktion

      Original application openURL Funktion im AppDelegate
    4. Ändern Sie die Funktion so, dass sie folgendermaßen aussieht

      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)
      }
      Geänderte application openURL Funktion mit GoogleSignIn Verarbeitung
    5. Speichern Sie die Datei mit Command + S

  4. Richten Sie Google Login in Ihrem JavaScript/TypeScript Code ein

    1. Importieren Sie SocialLogin und Capacitor

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

      Grundlegende Einrichtung (Online-Modus - empfohlen für die meisten Apps):

      // onMounted ist Vue-spezifisch
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Standard-Modus
      }
      })
      })

      Erweiterte Einrichtung mit zusätzlichen Client-IDs:

      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: 'YOUR_WEB_CLIENT_ID', // Optional: für Web-Plattform-Unterstützung
      iOSClientId: 'YOUR_IOS_CLIENT_ID', // Erforderlich: aus Schritt 1
      iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Optional: gleicher Wert wie webClientId, benötigt für einige erweiterte Funktionen
      mode: 'online' // 'online' oder 'offline'
      }
      })
      })
    3. Implementieren Sie die Login-Funktion. Erstellen Sie eine Schaltfläche und führen Sie den folgenden Code beim Klicken aus

      Für Online-Modus:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // Antwort verarbeiten - enthält Benutzerdaten
      console.log(JSON.stringify(res))

      Für Offline-Modus:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {
      forceRefreshToken: true // Empfohlen für Offline-Modus
      }
      })
      // res enthält serverAuthCode, keine Benutzerdaten
      // Senden Sie serverAuthCode an Ihr Backend, um Benutzerinformationen zu erhalten
      console.log('Server Auth Code:', res.result.serverAuthCode)
  5. Testen Sie Ihre Anwendung

    1. Bauen Sie Ihre App und führen Sie cap sync aus

    2. Wenn Sie alles richtig gemacht haben, sollten Sie sehen, dass der Google-Login-Ablauf ordnungsgemäß funktioniert

      Demo des Google-Login-Ablaufs auf iOS zeigt Anmeldeprozess und erfolgreiche Authentifizierung

Das Google Login Plugin ist inkompatibel mit @capacitor/privacy-screen. Wenn beide Plugins zusammen verwendet werden, wird die Google-Login-Webansicht durch den Datenschutzbildschirm unterbrochen.

Workaround: Rufen Sie await PrivacyScreen.disable(); auf, bevor Sie die Login-Funktion aufrufen:

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