Migración de Apple Sign-In a @capgo/social-login
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Esta guía detalla la transición del @capacitor-community/apple-sign-in plugin anterior al nuevo @capgo/capacitor-social-login package. El nuevo plugin ofrece una interfaz unificada para múltiples proveedores de autenticación social, con mejor soporte de TypeScript y mantenimiento activo.
Instalación
Sección titulada “Instalación”-
Elimina el paquete anterior:
Ventana de terminal npm uninstall @capacitor-community/apple-sign-in -
Instala el nuevo package:
Ventana de terminal npm install @capgo/capacitor-social-loginnpx cap sync
Cambios en Code
Sección titulada “Cambios en Code”Cambios en los imports
Sección titulada “Cambios en los imports”import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';Inicialización
Sección titulada “Inicialización”Cambio clave: El nuevo plugin requiere un paso de inicialización que antes no era necesario.
// 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 }});Nota importante: Para iOS, proporcionas la configuración básica, mientras que Android requiere detalles adicionales, como un Service ID y una URL de callback del backend para la autenticación OAuth basada en web.
Iniciar sesión
Sección titulada “Iniciar sesión”El proceso de login se simplifica de múltiples parámetros a un API más limpio:
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' }});El nuevo plugin utiliza login() con provider: 'apple' y scopes opcionales en lugar de pasar valores de configuración individuales como clientId y redirectURI.
Cambios en el tipo de respuesta
Sección titulada “Cambios en el Response Type”Los resultados ahora incluyen un accessToken objeto con detalles de expiración y una profile sección estructurada, reemplazando el formato de respuesta más plano del paquete original:
// 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; }; };}Nuevas funcionalidades
Sección titulada “Nuevas capacidades”El plugin actualizado incorpora funcionalidades que no estaban disponibles en la versión anterior:
Comprobando estado de sesión
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});Funcionalidad de cierre de sesión
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});Estos métodos proporcionan isLoggedIn() para verificar el estado de autenticación y logout() funcionalidad.
Cambios específicos por plataforma
Sección titulada “Cambios específicos de plataforma”iOS mantiene los procedimientos de configuración habituales mediante las capacidades de Xcode:
- La configuración de iOS sigue siendo prácticamente la misma. Aún necesitas:
- Habilitar la capacidad “Sign In with Apple” en Xcode
- Configurar tu app en el Apple Developer Portal
- No se requieren cambios adicionales de code para iOS
Configuración de Android
Sección titulada “Configuración de Android”Android ahora recibe soporte nativo mediante autenticación OAuth basada en web:
El nuevo plugin proporciona soporte para Android desde el inicio, pero requiere configuración adicional:
- Crea un ID de servicio en el Apple Developer Portal
- Configura un endpoint de autenticación web
- Configura tu app de Android para manejar el flujo OAuth
- Se requiere configurar el servicio backend
Para instrucciones detalladas de configuración de Android, consulta la Guía de configuración de Android.
Ventajas clave
Sección titulada “Ventajas clave”El paquete modernizado ofrece:
- APIs unificadas en múltiples proveedores sociales (Google, Facebook, Apple)
- Tipado de TypeScript mejorado con mejores definiciones de tipos
- Mantenimiento activo por la comunidad en comparación con la versión obsoleta
- Soporte nativo para Android mediante autenticación basada en web
- Persistent login state management
- Gestión de errores mejorada con tipos de error consistentes
Cambios importantes
Sección titulada “Breaking Changes”- Ahora se requiere una inicialización explícita - sin configuración predeterminada
- La estructura del objeto de respuesta ha cambiado - formato de resultado anidado
- La implementación de Android requiere un servicio de backend para OAuth
- El manejo de la renovación de tokens es diferente - mejor gestión de tokens
- El manejo de errores y los tipos de error han cambiado - errores más detallados
Para instrucciones de configuración detalladas, consulta la documentación oficial.
Continúa desde la migración de Apple Sign-In a @capgo/social-login
Sección titulada “Continúa desde la migración de Apple Sign-In a @capgo/social-login”Si estás usando Migración de Apple Sign-In a @capgo/social-login para planificar los flujos de autenticación y de cuenta, conéctalo con Uso de @capgo/capacitor-social-login para la capacidad nativa en el uso de @capgo/capacitor-social-login, @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-social-login, @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey, @capgo/capacitor-native-biometric para el detalle de implementación en @capgo/capacitor-native-biometric, y Autenticación de dos factores para el detalle de implementación en la autenticación de dos factores.