Aller directement au contenu

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

GitHub

Cette guide détaille la transition de l'ancien plugin vers le package moderne. @capacitor-community/apple-sign-in Le nouveau plugin fournit une interface unifiée pour plusieurs fournisseurs d'authentification sociale avec un support amélioré de TypeScript et une maintenance active. @capgo/capacitor-social-login Installation

  1. Supprimer l'ancien package :

    Fenêtre de terminal
    npm uninstall @capacitor-community/apple-sign-in
  2. Installer le nouveau package :

    Fenêtre de terminal
    npm install @capgo/capacitor-social-login
    npx cap sync
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
import { SocialLogin } from '@capgo/capacitor-social-login';

Changement clé: La nouvelle extension nécessite une étape d'initialisation qui n'était pas nécessaire avant.

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

Note importante: Pour iOS, vous fournissez une configuration de base, tandis que l'Android nécessite des détails supplémentaires, notamment un ID de service et une URL de rappel backend pour l'authentification OAuth basée sur le web.

Le processus de connexion simplifie de plusieurs paramètres à une API plus propre:

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 nouvelle extension utilise login() avec provider: 'apple' et d'options de portée facultatives plutôt que de passer des valeurs de configuration individuelles comme clientId et redirectURI.

Les résultats incluent maintenant un objet avec des détails d'expiration et un format de réponse structuré accessToken Copier dans le presse-papier profile Nouvelles fonctionnalités

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

Le plugin mis à jour introduit des fonctionnalités qui n'étaient pas disponibles dans le précurseur :

Vérification de l'état de connexion

et d'options de portée facultatives plutôt que de passer des valeurs de configuration individuelles comme __CAPGO_KEEP_0__

et

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

Fonctionnalité de déconnexion

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

Ces méthodes fournissent isLoggedIn() pour vérifier l'état d'authentification et logout() la fonctionnalité.

iOS permet de maintenir des procédures de configuration familières grâce aux capacités de Xcode :

  1. La configuration iOS reste principalement la même. Vous avez toujours besoin de :
    • Activer la capacité « Se connecter avec Apple » dans Xcode
    • Configurer votre application dans le Portail des développeurs Apple
    • Aucune modification supplémentaire code requise pour iOS

Android reçoit désormais un support natif via une authentification OAuth basée sur le web :

Le nouveau plugin fournit un support Android par défaut, mais nécessite une configuration supplémentaire :

  1. Créer un ID de service dans le Portail des développeurs Apple
  2. Configurer un point de terminaison d'authentification web
  3. Configurer votre application Android pour gérer le flux OAuth
  4. La configuration du service backend est requise

Pour des instructions de configuration détaillées d'Android, veuillez vous référer au Guide de configuration d'Android.

Le package modernisé fournit :

  1. API unifiées sur plusieurs fournisseurs sociaux (Google, Facebook, Apple)
  2. Typescript amélioré avec de meilleures définitions de type
  3. Maintenance active de la communauté par rapport à la version dépréciée
  4. Support intégré pour Android à travers une authentification basée sur le web
  5. Gestion de l'état de connexion persistant
  6. Traitement des erreurs amélioré avec des types d'erreurs cohérents
  1. Une initialisation explicite est maintenant requise - pas de configuration par défaut
  2. La structure de l'objet de réponse a changé - format de résultat imbriqué
  3. La mise en œuvre Android nécessite un service backend pour OAuth
  4. La gestion des jetons est différente - une gestion des jetons améliorée
  5. Les traitements d'erreur et les types d'erreur ont changé - des erreurs plus détaillées

Pour plus de détails sur les instructions de configuration, veuillez vous référer à la documentation officielle.

Continuez de la migration Apple Sign-In à @capgo/social-login

Section intitulée “Continuez de la migration Apple Sign-In à @capgo/social-login”

Si vous utilisez Apple Sign-In Migration à @capgo/social-login pour planifier l'authentification et les flux de compte, connectez-l’avec Mise en œuvre de @capgo/capacitor-social-login pour la capacité native dans Mise en œuvre de @capgo/capacitor-social-login @capgo/capacitor-social-login pour le détail d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour le détail d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour le détail d'implémentation dans Authentification à deux facteurs.