Apple Sign-In Migration zu @capgo/social-login
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Übersicht
Abschnitt mit dem Titel „Übersicht“Dieser Guide beschreibt den Wechsel vom alten @capacitor-community/apple-sign-in Plugin zum modernen @capgo/capacitor-social-login Package. Das neue Plugin bietet eine einheitliche Schnittstelle für verschiedene Social-Auth-Provider mit besserem TypeScript-Support und aktiver Wartung.
Installation
Abschnitt mit dem Titel „Installation“-
Altes Package entfernen:
Terminalfenster npm uninstall @capacitor-community/apple-sign-in -
Neues Package installieren:
Terminalfenster npm install @capgo/capacitor-social-loginnpx cap sync
Code Änderungen
Abschnitt mit dem Titel „Code Änderungen“Import-Änderungen
Abschnitt mit dem Titel „Import-Änderungen“import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';Initialisierung
Abschnitt mit dem Titel „Initialisierung“Key Change: Das neue Plugin benötigt einen Initialisierungsschritt, der zuvor nicht erforderlich war.
// No initialization needed in old package// For iOS: Basic configurationawait SocialLogin.initialize({ apple: {} // Basic iOS configuration});
// For Android: Additional configuration requiredawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL }});Wichtiger HinweisFür iOS reicht eine Basis-Konfiguration aus, während für Android zusätzliche Details wie eine Service ID und eine Backend-Callback-URL für webbasierte OAuth-Authentifizierung benötigt werden.
Der Login-Prozess wurde von mehreren Parametern auf ein saubereres API vereinfacht:
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: Add scopes if needed scopes: ['email', 'name'], nonce: 'nonce' }});Das neue Plugin nutzt login() mit provider: 'apple' und optionale Scopes, anstatt einzelne Konfigurationswerte wie clientId und redirectURI.
Änderungen beim Response Type
Abschnitt mit dem Titel „Änderungen beim Response Type“Die Ergebnisse enthalten nun einen accessToken Objekt mit Ablaufdetails und einem strukturierten profile Abschnitt, das das flachere Antwortformat des ursprünglichen Pakets ersetzt:
// Old response typeinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// New response typeinterface 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
Abschnitt mit dem Titel „Neue Funktionen“Das aktualisierte Plugin führt Funktionen ein, die im Vorgänger nicht verfügbar waren:
Login-Status prüfen
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});Logout-Funktionalität
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});Diese Methoden ermöglichen es, isLoggedIn() den Authentifizierungsstatus zu prüfen und logout() Funktionalität.
Plattformspezifische Änderungen
Abschnitt mit dem Titel „Plattformspezifische Änderungen“iOS-Setup
Abschnitt mit dem Titel „iOS Setup“iOS behält die gewohnten Setup-Abläufe über Xcode-Capabilities bei:
- Das iOS Setup bleibt weitgehend gleich. Du musst weiterhin:
- Die „Sign In with Apple“-Capability in Xcode aktivieren
- Deine App im Apple Developer Portal konfigurieren
- Für iOS sind keine zusätzlichen code-Änderungen erforderlich
Android-Setup
Abschnitt mit dem Titel „Android Setup“Android erhält nun native Unterstützung über webbasierte OAuth-Authentifizierung:
Das neue Plugin bietet Android-Support out of the box, erfordert jedoch zusätzliches Setup:
- Erstelle eine Services ID im Apple Developer Portal
- Konfiguriere einen Web-Authentication-Endpoint
- Richte deine Android-App für den OAuth-Flow ein
- Backend-Service-Konfiguration ist erforderlich
Detaillierte Anweisungen zum Android-Setup findest du im Android-Setup-Guide.
Wichtigste Vorteile
Abschnitt mit dem Titel „Wichtigste Vorteile“Das modernisierte Paket bietet:
- Einheitliche APIs für verschiedene Social-Provider (Google, Facebook, Apple)
- Verbessertes TypeScript-Typing mit besseren Type-Definitionen
- Aktive Community-Pflege im Vergleich zur veralteten Version
- Integrierte Android-Unterstützung via webbasierter Authentifizierung
- Persistentes Login-State-Management
- Besseres Error-Handling mit konsistenten Error-Typen
Breaking Changes
Abschnitt mit dem Titel „Breaking Changes“- Explizite Initialisierung jetzt erforderlich - keine Standardkonfiguration
- Struktur des Response-Objekts hat sich geändert - verschachteltes Resultat-Format
- Android-Implementierung benötigt Backend-Service für OAuth
- Token-Refresh-Handling ist anders - verbessertes Token-Management
- Error-Handling und Fehlertypen haben sich geändert - detailliertere Fehlermeldungen
Detaillierte Setup-Anleitungen findest du in der offiziellen Dokumentation.
Fahre fort von der Apple Sign-In Migration zu @capgo/social-login
Abschnitt „Fahre fort von der Apple Sign-In Migration zu @capgo/social-login“Wenn du es nutzt Apple Sign-In Migration zu @capgo/social-login Um Authentifizierungs- und Account-Flows zu planen, verbinde es mit Mit @capgo/capacitor-social-login für die native Funktionalität in Mit @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.