Zum Inhalt springen

Apple Sign-In-Migration zu @capgo/social-login

GitHub

Diese Anleitung skizziert die Übergang vom alten @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 verbessertem TypeScript-Unterstützung und aktiver Wartung.

  1. Entfernen Sie das alte Paket:

    Terminalfenster
    npm uninstall @capacitor-community/apple-sign-in
  2. Installieren Sie das neue Paket:

    Terminalfenster
    npm install @capgo/capacitor-social-login
    npx cap sync
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
import { SocialLogin } from '@capgo/capacitor-social-login';

Schlüsseländerung: Die neue Plugin erfordert einen Initialisierungs-Schritt, der vorher nicht benötigt wurde.

// No initialization needed in old package
// For iOS: Basic configuration
await SocialLogin.initialize({
apple: {} // Basic iOS configuration
});
// For Android: Additional configuration required
await SocialLogin.initialize({
apple: {
clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal
redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL
}
});

Wichtiger Hinweis: Für iOS bereitstellen Sie grundlegende Konfigurationen, während Android zusätzliche Details erfordert, einschließlich einer Service-ID und einem Backend-Callback-URL für webbasierte OAuth-Authentifizierung.

Der Anmeldevorgang vereinfacht sich von mehreren Parametern zu einem sauberen 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: Add scopes if needed
scopes: ['email', 'name'],
nonce: 'nonce'
}
});

Die neue Plugin verwendet login() mit provider: 'apple' und optionalen Berechtigungen anstatt einzelne Konfigurationswerte wie clientId und redirectURI.

Die Ergebnisse umfassen nun ein accessToken Objekt mit Ablaufdaten und einem strukturierten profile Sektion, die die flachere Antwortformat des Originalpaketes ersetzt:

// Old response type
interface AppleSignInResponse {
response: {
user: string;
email: string | null;
givenName: string | null;
familyName: string | null;
identityToken: string | null;
authorizationCode: string | null;
};
}
// New response type
interface 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;
};
};
}

Die aktualisierte Erweiterung bietet Funktionen, die im Vorgänger nicht verfügbar waren:

Anmeldung überprüfen

// Not available in old package
const status = await SocialLogin.isLoggedIn({
provider: 'apple'
});

Ausloggingsfunktion

// Not available in old package
await SocialLogin.logout({
provider: 'apple'
});

Diese Methoden bieten isLoggedIn() um die Authentifizierungsstatus und logout() Funktionalität an.

iOS pflegt bekannte Einrichtungsverfahren durch Xcode-Funktionen:

  1. Die iOS-Einrichtung bleibt größtenteils unverändert. Sie müssen immer noch:
    • Die Funktion „Anmelden mit Apple“ in Xcode aktivieren
    • Konfigurieren Sie Ihre App im Apple-Entwicklerportal
    • Für iOS sind keine zusätzlichen code Änderungen erforderlich

Android erhält nun native Unterstützung über webbasierte OAuth-Authentifizierung:

Das neue Plugin bietet Android-Unterstützung direkt aus der Box, erfordert jedoch zusätzliche Einrichtungen:

  1. Erstellen Sie einen Services-ID im Apple-Entwicklerportal
  2. Konfigurieren Sie einen Web-Authentifizierungs-Endpunkt
  3. Konfigurieren Sie Ihre Android-App zum Handling des OAuth-Flusses
  4. Die Konfiguration des Backend-Dienstes ist erforderlich

Für detaillierte Anweisungen zur Android-Einrichtung, zitieren Sie bitte die Dokumentation Android Einrichtungsanleitung.

Die modernisierte Paket bietet:

  1. Einheitliche APIs über mehrere soziale Anbieter (Google, Facebook, Apple)
  2. Verbesserte TypeScript-Typisierung mit besseren Typdefinitionen
  3. Aktive Wartung durch die Community im Vergleich zur veralteten Version
  4. Integrierte Android-Unterstützung durch webbasierte Authentifizierung
  5. persistenter Loginzustand
  6. Bessere Fehlerbehandlung mit konsistenten Fehlerarten
  1. Eine explizite Initialisierung ist jetzt erforderlich - keine Standardkonfiguration
  2. Die Struktur des Antwortobjekts hat sich geändert - formatiertes Ergebnis
  3. Die Android-Implementierung erfordert einen Backend-Dienst für OAuth
  4. Die Token-Refresh-Verarbeitung ist anders - verbesserte Token-Verwaltung
  5. Fehlerbehandlung und Fehlerarten haben sich geändert - detailliertere Fehler

Für detailliertere Einrichtungsanweisungen, zögern Sie bitte zu der offizielle Dokumentation.

Weitermachen von Apple Sign-In-Migration zu @capgo/social-login

Abschnitt mit dem Titel “Weitermachen von Apple Sign-In-Migration zu @capgo/social-login”

Wenn Sie Apple Sign-In-Migration zu @capgo/social-login für die Planung der Authentifizierung und der Kontoflows verwenden, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit 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 in Zwei-Faktor-Authentifizierung.