Zum Inhalt springen

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

GitHub

Diese Anleitung beschreibt 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. Entferne das alte Paket:

    Terminalfenster
    npm uninstall @capacitor-community/apple-sign-in
  2. Install die 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 Initialisierungsschritt, 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'
}
});

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

Ergebnisse umfassen nun ein accessToken Objekt mit Ablaufdaten und einem strukturierten profile Abschnitt, der den flachen 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;
};
};
}

Das aktualisierte Plugin bietet Funktionen, die in seinem Vorgänger nicht verfügbar waren:

Anmeldung überprüfen

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

Ablaufdatum

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

Diese Methoden bieten isLoggedIn() um die Authentifizierungsstatus zu überprüfen und logout() Funktionalität.

iOS wird durch Xcode-Funktionen bekannte Einrichtungsverfahren aufrechterhält:

  1. Die iOS-Einrichtung bleibt weitgehend gleich. Sie müssen immer noch:
    • Die Funktion „Anmeldung mit Apple“ in Xcode aktivieren
    • Ihre App in der Apple-Entwickler-Portal konfigurieren
    • No zusätzliche code Änderungen erforderlich für iOS

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. Einen Services-ID in der Apple-Entwickler-Portal erstellen
  2. Eine Web-Authentifizierungs-Endpunkt konfigurieren
  3. Ihr Android-App zum Handling des OAuth-Flusses einrichten
  4. Eine Backend-Dienst-Konfiguration ist erforderlich

Für detaillierte Anweisungen zur Android-Einrichtung, wenden Sie sich bitte an die Anleitung zur Android-Einrichtung.

Der modernisierte Paket bietet:

  1. Eingebettete 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. Verwaltung des persistierenden Login-Zustands
  6. Bessere Fehlerbehandlung mit konsistenten Fehlerarten
  1. Eine explizite Initialisierung ist jetzt erforderlich - keine Standardkonfiguration
  2. Die Struktur des Antwortobjekts hat sich geändert - formatierte Ergebnisse
  3. Für die Android-Implementierung ist ein Backend-Service erforderlich für OAuth
  4. Die Token-Refresh-Verwaltung ist anders - verbesserte Token-Verwaltung
  5. Fehlerbehandlung und Fehlerarten haben sich geändert - detailliertere Fehler

Für detailliertere Einrichtungsanweisungen, zögern Sie bitte zur offiziellen Dokumentation.

Gehen Sie weiter von der Apple-Sign-In-Migration zu @capgo/social-login

Abschnitt mit dem Titel “Gehen Sie weiter von der 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