Saltare al contenuto

Migrazione di Apple Sign-In 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 multiple con supporto migliorato per TypeScript e manutenzione attiva. @capgo/capacitor-social-login Installazione

Sottosezione intitolata “Installazione”

Elimina il vecchio pacchetto:
  1. Fenestra del terminale

    Rimuovi il vecchio pacchetto: __CAPGO_KEEP_0__
    npm uninstall @capacitor-community/apple-sign-in
  2. Installa il nuovo pacchetto:

    Finestra del terminale
    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 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 parametri multipli a una API: più pulita.

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 anziché passare valori di configurazione individuali come clientId e redirectURI.

I risultati includono ora un accessToken oggetto con dettagli di scadenza e una sezione strutturata, che sostituisce il formato di risposta più lineare del pacchetto originale: profile Copia negli appunti

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

Verifica dello Stato di Accesso

Copia negli appunti

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

Copia negli appunti

// 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 attraverso le capacità di Xcode:

  1. La configurazione iOS rimane sostanzialmente la stessa. È ancora necessario:
    • Abilita la capacità “Accedi con Apple” in Xcode
    • Configura la tua app nel Portale dello Sviluppatore Apple
    • Non sono richieste ulteriori modifiche code per iOS

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

Il nuovo plugin fornisce il supporto Android di serie, ma richiede una configurazione aggiuntiva:

  1. Creare un ID Servizi nel Portale dello Sviluppatore Apple
  2. Configura un endpoint di autenticazione web
  3. Configura la tua app Android per gestire il flusso OAuth
  4. È richiesta la configurazione del servizio backend

Per ulteriori istruzioni di configurazione Android, si prega di consultare il Guida di configurazione per Android.

La versione aggiornata del pacchetto fornisce:

  1. API unificate su più provider sociali (Google, Facebook, Apple)
  2. Miglioramenti per la tipizzazione TypeScript con definizioni di tipo migliorate
  3. Manutenzione della community attiva rispetto alla versione deprecata
  4. Sostegno integrato per Android attraverso l'autenticazione basata su web
  5. La gestione dello stato di accesso persistente
  6. Un miglioramento nella gestione degli errori con tipi di errore coerenti
  1. L'inizializzazione esplicita è ora richiesta - nessuna configurazione predefinita
  2. La struttura dell'oggetto di risposta è cambiata - formato di risultato nidificato
  3. La implementazione Android richiede un servizio backend per OAuth
  4. La gestione del refresh del token è diversa - gestione dei token migliorata
  5. I metodi di gestione degli errori e i tipi di errore sono stati modificati - errori più dettagliati

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

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

Sezione intitolata “Continua da Apple Sign-In Migration a @capgo/social-login”

Se stai utilizzando Apple Sign-In Migration a @capgo/social-login per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-social-login per la capacità nativa in Utilizza @capgo/capacitor-social-login, @capgo/capacitor-autenticazione-social per i dettagli di implementazione in @capgo/capacitor-autenticazione-social, @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometria-nativa per i dettagli di implementazione in @capgo/capacitor-biometria-nativa, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.