Migrationsleitfaden von @capacitor-community/apple-sign-in zu @capgo/capacitor-social-login
Übersicht
Section titled “Übersicht”Dieser Leitfaden beschreibt den Übergang vom veralteten @capacitor-community/apple-sign-in Plugin zum modernen @capgo/capacitor-social-login Paket. Das neue Plugin bietet eine einheitliche Schnittstelle für mehrere soziale Authentifizierungsanbieter mit verbesserter TypeScript-Unterstützung und aktiver Wartung.
Installation
Section titled “Installation”-
Entfernen Sie das alte Paket:
Terminal-Fenster npm uninstall @capacitor-community/apple-sign-in -
Installieren Sie das neue Paket:
Terminal-Fenster npm install @capgo/capacitor-social-loginnpx cap sync
Code-Änderungen
Section titled “Code-Änderungen”Import-Änderungen
Section titled “Import-Änderungen”import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';Initialisierung
Section titled “Initialisierung”Wichtige Änderung: Das neue Plugin erfordert einen Initialisierungsschritt, der zuvor nicht erforderlich war.
// Keine Initialisierung im alten Paket erforderlich// Für iOS: Basiskonfigurationawait SocialLogin.initialize({ apple: {} // Basis-iOS-Konfiguration});
// Für Android: Zusätzliche Konfiguration erforderlichawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service-ID aus dem Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Ihre Backend-Callback-URL }});Wichtiger Hinweis: Für iOS geben Sie eine Basiskonfiguration an, während Android zusätzliche Details einschließlich einer Service-ID und Backend-Callback-URL für webbasierte OAuth-Authentifizierung benötigt.
Anmelden
Section titled “Anmelden”Der Login-Prozess vereinfacht sich von mehreren Parametern zu einer saubereren API:
const result = await SignInWithApple.authorize({ clientId: 'com.your.app', redirectURI: 'https://your-app.com/callback', scopes: 'email name', state: '12345', nonce: 'nonce'});
const result = await SocialLogin.login({ provider: 'apple', options: { // Optional: Scopes hinzufügen, falls erforderlich scopes: ['email', 'name'], nonce: 'nonce' }});Das neue Plugin verwendet login() mit provider: 'apple' und optionalen Scopes anstelle der Übergabe einzelner Konfigurationswerte wie clientId und redirectURI.
Änderungen des Antworttyps
Section titled “Änderungen des Antworttyps”Die Ergebnisse enthalten jetzt ein accessToken-Objekt mit Ablaufdetails und einem strukturierten profile-Abschnitt, der das flachere Antwortformat des ursprünglichen Pakets ersetzt:
// Alter Antworttypinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// Neuer Antworttypinterface SocialLoginResponse { provider: 'apple'; result: { accessToken: { token: string; expiresIn?: number; refreshToken?: string; } | null; idToken: string | null; profile: { user: string; email: string | null; givenName: string | null; familyName: string | null; }; };}Neue Funktionen
Section titled “Neue Funktionen”Das aktualisierte Plugin führt Funktionalität ein, die im Vorgänger nicht verfügbar war:
Login-Status überprüfen
// Im alten Paket nicht verfügbarconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});Logout-Funktionalität
// Im alten Paket nicht verfügbarawait SocialLogin.logout({ provider: 'apple'});Diese Methoden bieten isLoggedIn() zur Überprüfung des Authentifizierungsstatus und logout()-Funktionalität.
Plattformspezifische Änderungen
Section titled “Plattformspezifische Änderungen”iOS-Einrichtung
Section titled “iOS-Einrichtung”iOS behält vertraute Einrichtungsverfahren über Xcode-Funktionen bei:
- Die iOS-Einrichtung bleibt weitgehend gleich. Sie müssen weiterhin:
- “Sign In with Apple”-Funktion in Xcode aktivieren
- Ihre App im Apple Developer Portal konfigurieren
- Keine zusätzlichen Code-Änderungen für iOS erforderlich
Android-Einrichtung
Section titled “Android-Einrichtung”Android erhält jetzt native Unterstützung über webbasierte OAuth-Authentifizierung:
Das neue Plugin bietet Android-Unterstützung von Haus aus, erfordert jedoch zusätzliche Einrichtung:
- Erstellen Sie eine Services-ID im Apple Developer Portal
- Konfigurieren Sie einen Web-Authentifizierungsendpunkt
- Richten Sie Ihre Android-App ein, um den OAuth-Ablauf zu verarbeiten
- Backend-Service-Konfiguration ist erforderlich
Detaillierte Anweisungen zur Android-Einrichtung finden Sie im Android Setup Guide.
Hauptvorteile
Section titled “Hauptvorteile”Das modernisierte Paket bietet:
- Einheitliche APIs über mehrere soziale Anbieter hinweg (Google, Facebook, Apple)
- Verbesserte TypeScript-Typisierung mit besseren Typdefinitionen
- Aktive Community-Wartung im Vergleich zur veralteten Version
- Integrierte Android-Unterstützung durch webbasierte Authentifizierung
- Persistente Login-Zustandsverwaltung
- Bessere Fehlerbehandlung mit konsistenten Fehlertypen
Breaking Changes
Section titled “Breaking Changes”- Explizite Initialisierung ist jetzt erforderlich - keine Standardkonfiguration
- Struktur des Antwortobjekts hat sich geändert - verschachteltes Ergebnisformat
- Android-Implementierung erfordert einen Backend-Service für OAuth
- Token-Refresh-Behandlung ist anders - verbesserte Token-Verwaltung
- Fehlerbehandlung und Fehlertypen haben sich geändert - detailliertere Fehler
Für detailliertere Einrichtungsanweisungen konsultieren Sie bitte die offizielle Dokumentation.