Vai direttamente al contenuto

Migrazione di Sign-In Apple a @capgo/social-login

@GitHub

Questa guida descrive la transizione dal plugin legacy al pacchetto moderno. @capacitor-community/apple-sign-in Il nuovo plugin fornisce un'interfaccia unificata per i provider di autenticazione sociale con supporto migliorato per TypeScript e manutenzione attiva. @capgo/capacitor-social-login Installazione

Sezione intitolata “Installazione”

Elimina il vecchio pacchetto:
  1. Finestra del terminale

    Copia negli appunti
    npm uninstall @capacitor-community/apple-sign-in
  2. Finestra del terminale

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

Modifica Chiave: La nuova estensione richiede un passaggio di inizializzazione che non era necessario prima.

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

Nota Importante: Per iOS, fornite una configurazione di base, mentre l'Android richiede ulteriori dettagli, inclusa un ID di servizio e un URL di callback backend per l'autenticazione OAuth basata su web.

Il processo di accesso si semplifica da più parametri a un API: più pulito

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

La nuova estensione utilizza login() con provider: 'apple' e opzioni di ambito facoltative al posto di passare valori di configurazione individuali come clientId e redirectURI.

I risultati includono ora un accessToken oggetto con dettagli di scadenza e una struttura organizzata profile Sezione, sostituisce il formato di risposta più piatto dell'originale pacchetto:

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

L'aggiornamento del plugin introduce funzionalità che non erano disponibili nel predecessore:

Verifica dello stato di accesso

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

Funzionalità di Logout

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

Questi metodi forniscono isLoggedIn() per verificare lo stato di autenticazione e logout() funzionalità.

iOS mantiene procedure di configurazione familiari grazie alle funzionalità di Xcode:

  1. La configurazione iOS rimane sostanzialmente la stessa. È ancora necessario:
    • Abilitare la “capacità di accesso con Apple” in Xcode
    • Configurare la tua app nel Portale dello Sviluppatore Apple
    • Nessuna modifica aggiuntiva code richiesta per iOS

Android ora riceve il supporto nativo tramite l'autenticazione OAuth basata su web:

Il nuovo plugin fornisce il supporto per Android in modo predefinito, ma richiede una configurazione aggiuntiva:

  1. Crea un ID Servizi nel Portale dello Sviluppatore Apple
  2. Configura un endpoint di autenticazione web
  3. È richiesta la configurazione del servizio backend
  4. Per ulteriori istruzioni di configurazione per Android, si prega di consultare il

Guida di configurazione per Android Vantaggi chiave.

Sezione intitolata “Vantaggi chiave”

Il pacchetto modernizzato fornisce:

Key Advantages

  1. API unificate su più provider sociali (Google, Facebook, Apple)
  2. Tipi di tipo migliorati con definizioni di tipo migliori
  3. Manutenzione della community attiva rispetto alla versione obsoleta
  4. Supporto Android integrato attraverso l'autenticazione basata sul web
  5. Gestione dello stato di accesso persistente
  6. Miglior gestione degli errori con tipi di errore coerenti

Cambiamenti di versione significativi

Sezione intitolata “Cambiamenti significativi”
  1. E' ora richiesta l'inizializzazione esplicita - nessuna configurazione predefinita
  2. La struttura dell'oggetto di risposta è cambiata - formato di risultato nidificato
  3. L'implementazione per Android richiede un servizio backend per OAuth
  4. Il gestionale dei token è diverso - gestione dei token migliorata
  5. Il gestionale degli errori e i tipi di errore sono cambiati - errori più dettagliati

Per ulteriori istruzioni di configurazione dettagliate, si prega di consultare il documentazione ufficiale.

Continua da Migrazione di Apple Sign-In a @capgo/social-login

Sottosezione intitolata “Continua da Migrazione di Apple Sign-In a @capgo/social-login”

Se stai utilizzando Migrazione di Apple Sign-In a @capgo/social-login per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzare @capgo/capacitor-social-login per la capacità nativa in Utilizzare @capgo/capacitor-social-login, @capgo/capacitor-social-login per il dettaglio di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey per la dettagliata implementazione in @capgo/capacitor-native-biometric, e per la dettagliata implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per la dettagliata implementazione in Autenticazione a due fattori.