Apple Migration de connexion vers @capgo/social-login
Aperçu
Section titled “Aperçu”Ce guide décrit la transition de l’ancien plugin @capacitor-community/apple-sign-in au package moderne @capgo/capacitor-social-login. Le nouveau plugin fournit une interface unifiée pour plusieurs fournisseurs d’authentification sociale avec une prise en charge améliorée de TypeScript et une maintenance active.
##Installation
-
Supprimez l’ancien package :
Terminal window npm uninstall @capacitor-community/apple-sign-in -
Installez le nouveau package :
Terminal window npm install @capgo/capacitor-social-loginnpx cap sync
Modifications du code
Section titled “Modifications du code”Importer les modifications
Section titled “Importer les modifications”import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';Initialisation
Section titled “Initialisation”Changement de clé : le nouveau plugin nécessite une étape d’initialisation qui n’était pas nécessaire auparavant.
// No initialization needed in old package// For iOS: Basic configurationawait SocialLogin.initialize({ apple: {} // Basic iOS configuration});
// For Android: Additional configuration requiredawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL }});Remarque importante : Pour iOS, vous fournissez une configuration de base, tandis que Android nécessite des détails supplémentaires, notamment un ID de service et une URL de rappel back-end pour l’authentification OAuth basée sur le Web.
Se connecter
Section titled “Se connecter”Le processus de connexion passe de plusieurs paramètres à un 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' }});Le nouveau plugin utilise login() avec provider: 'apple' et des étendues facultatives plutôt que de transmettre des valeurs de configuration individuelles telles que clientId et redirectURI.
Modifications du type de réponse
Section titled “Modifications du type de réponse”Les résultats incluent désormais un objet accessToken avec des détails d’expiration et une section profile structurée, remplaçant le format de réponse plus plat du package d’origine :
// Old response typeinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// New response typeinterface 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; }; };}Nouvelles fonctionnalités
Section titled “Nouvelles fonctionnalités”Le plugin mis à jour introduit des fonctionnalités qui n’étaient pas disponibles dans le prédécesseur :
Checking Login Status
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});Fonctionnalité de déconnexion
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});Ces méthodes fournissent isLoggedIn() pour vérifier l’état d’authentification et la fonctionnalité logout().
Modifications spécifiques à la plateforme
Section titled “Modifications spécifiques à la plateforme”iOS Setup
Section titled “iOS Setup”iOS maintient les procédures de configuration familières grâce aux fonctionnalités Xcode :
- La configuration iOS reste en grande partie la même. Vous devez encore :
- Activer la fonctionnalité “Connexion avec Apple” dans Xcode
- Configurez votre application dans le portail des développeurs Apple
- Aucune modification de code supplémentaire requise pour iOS
Android Configuration
Section titled “Android Configuration”Android bénéficie désormais d’une prise en charge native via l’authentification Web OAuth :
Le nouveau plugin fournit une prise en charge Android prête à l’emploi, mais nécessite une configuration supplémentaire :
- Créez un ID de services dans le portail de développeur Apple
- Configure a web authentication endpoint
- Configurez votre application Android pour gérer le flux OAuth
- Backend service configuration is required
Pour des instructions de configuration détaillées de Android, veuillez vous référer au Android Guide de configuration.
Avantages clés
Section titled “Avantages clés”Le package modernisé fournit :
- API unifiées sur plusieurs fournisseurs sociaux (Google, Facebook, Apple)
- Typage TypeScript amélioré avec de meilleures définitions de type
- Maintenance communautaire active par rapport à la version obsolète
- Prise en charge intégrée de Android via l’authentification basée sur le Web
- Persistent login state management
- Meilleure gestion des erreurs avec des types d’erreurs cohérents
Modifications radicales1. Une initialisation explicite est désormais requise - aucune configuration par défaut
Section titled “Modifications radicales1. Une initialisation explicite est désormais requise - aucune configuration par défaut”- La structure de l’objet de réponse a changé - format de résultat imbriqué
- La mise en œuvre de Android nécessite un service backend pour OAuth
- La gestion de l’actualisation des jetons est différente - gestion améliorée des jetons
- La gestion des erreurs et les types d’erreurs ont changé - erreurs plus détaillées
Pour des instructions de configuration plus détaillées, veuillez vous référer à la documentation officielle.