Zum Inhalt springen

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

@GitHub

Diese Anleitung beschreibt die Übergang vom alten Plugin zum modernen @capacitor-community/apple-sign-in Package. Das neue Plugin bietet eine einheitliche Schnittstelle für mehrere soziale Authentifizierungsanbieter mit verbessertem TypeScript-Unterstützung und aktiver Wartung. @capgo/capacitor-social-login Installation

  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';

Änderung der Schlüssel: Die neue Plugin 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
}
});

Wichtiger Hinweis: Für iOS bereitigen Sie die grundlegende Konfiguration, während Android zusätzliche Details erfordert, einschließlich einer Service-ID und einer 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'
}
});

Das neue Plugin verwendet login() mit provider: 'apple' And optional Scopes clientId Und redirectURI.

Änderungen im Antworttyp

Änderungen im Antworttyp

Erfolgreiche Migrationsergebnisse accessToken Erfolgreiche Migrationsergebnisse profile Objekt mit Ablaufdaten und einem strukturierten

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

Erfolgreiche Migrationsergebnisse

Zu Clipboard kopieren

Neue Funktionen

Änderungen im Antworttyp

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

Abmeldungs-Funktion

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

Diese Methoden bieten eine Möglichkeit, isLoggedIn() um die Authentifizierungsstatus zu überprüfen und logout() Funktionen bereitzustellen.

iOS pflegt bekannte Einrichtungsverfahren durch Xcode-Funktionen:

  1. Die iOS-Einstellungen bleiben größtenteils gleich. Sie benötigen immer noch:
    • Die Funktion „Mit Apple anmelden“ 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:

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

  1. Erstellen Sie einen Services-ID in der Apple-Entwickler-Portal
  2. Konfigurieren Sie einen Web-Authentifizierungs-Endpunkt
  3. Konfigurieren Sie Ihre Android-App, um den OAuth-Flow zu handhaben
  4. Backend-Dienstkonfiguration ist erforderlich

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

Das 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. Eingebaute Android-Unterstützung über Web-basierte Authentifizierung
  5. Verwaltung des persistierenden Anmeldezustands
  6. Bessere Fehlerbehandlung mit konsistenten Fehlerarten
  1. Zwingende Initialisierung ist jetzt erforderlich - keine Standardkonfiguration
  2. Struktur des Antwortobjekts wurde geändert - formatierte Ergebnisse in der NESTED-Struktur
  3. Die Android-Implementierung erfordert einen Backend-Dienst für OAuth
  4. Die Token-Aufrufhandhabung ist anders - Verbesserte Token-Verwaltung
  5. Fehlerhandhabung und Fehlerarten haben sich geändert - Detailliertere Fehler

Für detailliertere Anweisungen zur Einrichtung, wenden Sie sich bitte an die offizielle Dokumentation.

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

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

Wenn Sie Apple Sign-In Migration zu @__CAPGO_KEEP_0__/social-login Apple Sign-In Migration to @capgo/social-login Apple Sign-In Migration zu @__CAPGO_KEEP_0__/social-login Mithilfe von @capgo/capacitor-social-login für die native Fähigkeit in Mithilfe von @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-biometrisch für die Implementierungsdetails in @capgo/capacitor-native-biometrisch und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in Zwei-Faktor-Authentifizierung.