Zum Inhalt springen

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

@GitHub

Diese Anleitung beschreibt die Übergang von der Legacy-Version. @capacitor-community/apple-sign-in Plugin zur 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. Den alten Paket entfernen:

    Terminalfenster
    npm uninstall @capacitor-community/apple-sign-in
  2. Das neue Paket installieren:

    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 Erweiterung erfordert einen Initialisierungsschritt, der vorher nicht erforderlich war.

// 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
}
});

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

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.

Die Ergebnisse umfassen nun ein accessToken Objekt mit Ablaufdaten und eine strukturierte profile Abschnitt, anstatt der flachen Antwortformat des Originalpaketes:

// 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 in ihrem Vorgänger nicht verfügbar waren:

Anmeldungsstatus überprüfen

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

Abmeldefunktion

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

Diese Methoden liefern isLoggedIn() um die Authentifizierungsstatus zu überprüfen und logout() Funktionen.

Plattformspezifische Änderungen

Abschnitt: Plattformspezifische Änderungen

iOS pflegt bekannte Einrichtungsverfahren durch Xcode-Fähigkeiten:

  1. Die iOS-Einrichtung bleibt größtenteils unverändert. Sie benötigen immer noch:
    • Die Funktion „Anmeldung mit Apple“ in Xcode aktivieren
    • Ihre App in der Apple-Entwickler-Portal konfigurieren
    • Keine zusätzlichen code Änderungen erforderlich für iOS

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

The neue Plugin bietet Android-Unterstützung direkt, erfordert jedoch zusätzliche Einstellungen:

  1. Erstellen Sie einen Services-Id im Apple-Entwicklerportal
  2. Konfigurieren Sie einen Web-Auth-Endpunkt
  3. Konfigurieren Sie Ihr Android-App, um den OAuth-Flow zu verarbeiten
  4. Die Konfiguration des Backend-Dienstes ist erforderlich

Für detaillierte Anweisungen zum Android-Setup, zögern Sie bitte den Anleitung zum Android-Setup.

Das modernisierte Paket bietet:

  1. Einheitliche APIs über mehrere soziale Anbieter (Google, Facebook, Apple)
  2. Verbesserte TypeScript-Typen mit besseren Typdefinitionen
  3. Aktive Community-Wartung im Vergleich zur veralteten Version
  4. Eingebettete Android-Unterstützung durch webbasierte Authentifizierung
  5. persistente Anmeldezustand-Verwaltung
  6. Bessere Fehlerbehandlung mit konsistenten Fehlerarten
  1. Eine explizite Initialisierung ist jetzt erforderlich - keine Standardkonfiguration
  2. Die Struktur des Antwortobjekts wurde geändert - formatierte Ergebnisse
  3. Für die Android-Implementierung ist ein Backend-Service erforderlich zur OAuth-Anmeldung
  4. Die Token-Refresh-Verwaltung ist anders - verbesserte Token-Verwaltung
  5. Die Fehlerbehandlung und Fehlerarten wurden geändert - detailliertere Fehlermeldungen

Für detailliertere Einrichtungsanweisungen wenden Sie sich bitte an die offizielle Dokumentation.

Fortsetzen Sie von der Apple-Sign-In-Migration bis @capgo/social-login

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

Wenn Sie " Apple Sign-In-Migration zu @capgo/social-login um die Authentifizierung und die Kontoflows zu planen, verbinden Sie es mit Mit @capgo/capacitor-social-login zur nativen Fähigkeit in Mit @capgo/capacitor-social-login, @capgo/capacitor-social-login zur Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-passkey zur Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric zur Implementierungsdetails in @capgo/capacitor-native-biometric und Zweifaktor-Authentifizierung für die Implementierungsdetails in der Zweifaktor-Authentifizierung.