Pular al contenido

Migración de Inicio de Sesión de Apple a @capgo/social-login

GitHub

Esta guía describe la transición desde el legado @capacitor-community/apple-sign-in plugin al moderno @capgo/capacitor-social-login paquete. El nuevo plugin proporciona una interfaz unificada para múltiples proveedores de autenticación social con un mejor soporte de TypeScript y mantenimiento activo.

  1. Elimine el paquete antiguo:

    Ventana de terminal
    npm uninstall @capacitor-community/apple-sign-in
  2. Instale el nuevo paquete:

    Ventana 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';

Cambio clave: El nuevo plugin requiere un paso de iniciación que no era necesario antes.

// 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: Para iOS, proporciona una configuración básica, mientras que Android requiere detalles adicionales, incluido un ID de Servicio y una URL de llamada de backend para la autenticación de OAuth basada en web.

El proceso de inicio de sesión se simplifica desde múltiples parámetros a una API:

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 ámbitos opcionales en lugar de pasar valores de configuración individuales como clientId y redirectURI.

Los resultados ahora incluyen un accessToken objeto con detalles de expiración y una sección estructurada profile que reemplaza el formato de respuesta plano del paquete original:

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

El plugin actualizado introduce funcionalidades que no estaban disponibles en el predecesor:

Verificar el estado de inicio de sesión

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

Funcionalidad de cierre de sesión

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

These methods provide __CAPGO_KEEP_0__ to verify authentication status and __CAPGO_KEEP_1__. isLoggedIn() para verificar el estado de autenticación y __CAPGO_KEEP_1__. logout() funcionalidad.

iOS. mantiene procedimientos de configuración familiares a través de capacidades de Xcode:

  1. La configuración de iOS sigue siendo en gran medida la misma. Todavía necesitas:
    • Habilitar la capacidad “Iniciar sesión con Apple” en Xcode
    • Configurar su aplicación en el Portal de Desarrolladores de Apple
    • No se requieren cambios adicionales code para iOS

Android ahora recibe soporte nativo mediante autenticación de OAuth basada en web:

El nuevo plugin proporciona soporte de Android de forma predeterminada, pero requiere una configuración adicional:

  1. Crear un ID de Servicio en el Portal del Desarrollador de Apple
  2. Configurar un punto de conexión de autenticación web
  3. Configurar la aplicación de Android para manejar el flujo de OAuth
  4. Se requiere configuración del servicio de backend

Para obtener instrucciones detalladas de configuración de Android, consulte el Guía de Configuración de Android.

El paquete modernizado proporciona:

  1. APIs unificadas en múltiples proveedores sociales (Google, Facebook, Apple)
  2. Mejor tipado de TypeScript con definiciones de tipo mejoradas
  3. Mantenimiento de la comunidad activa en comparación con la versión descontinuada
  4. Compatibilidad integrada con Android a través de la autenticación basada en web
  5. Gestión del estado de inicio de sesión persistente
  6. Mejores manejo de errores con tipos de errores consistentes
  1. La inicialización explícita es ahora obligatoria - no configuración por defecto
  2. La estructura del objeto de respuesta ha cambiado - formato de resultados anidados
  3. La implementación de Android requiere un servicio de backend para OAuth
  4. El manejo de refresco de tokens es diferente - mejor gestión de tokens
  5. Los manejo de errores y los tipos de errores han cambiado - errores más detallados

Para obtener instrucciones de configuración más detalladas, consulte la documentación oficial.

Siga adelante desde la migración de inicio de sesión de Apple a @capgo/social-login

Sección titulada “Siga adelante desde la migración de inicio de sesión de Apple a @capgo/social-login”

Si está utilizando Migración de inicio de sesión de Apple a @capgo/social-login para planificar la autenticación y los flujos de cuenta, conéctelo con Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login, @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-llave para los detalles de implementación en @capgo/capacitor-clave-llave @capgo/capacitor-biometría-nativa para los detalles de implementación en @capgo/capacitor-biometría-nativa, y autenticación de dos factores para los detalles de implementación en autenticación de dos factores.