Pular al contenido

Configuración inicial

GitHub

Puede utilizar nuestra configuración asistida por inteligencia artificial para instalar el complemento. Agregue las Capgo habilidades a su herramienta de inteligencia artificial utilizando el siguiente comando:

Ventana de terminal
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

Luego utilice el siguiente prompt:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-social-login` plugin in my project.

Si prefiere la configuración manual, instale el complemento ejecutando los siguientes comandos y siguiendo las instrucciones específicas de la plataforma a continuación:

  1. Instalar el paquete

    Ventana de terminal
    npm install @capgo/capacitor-social-login
  2. Sincronizar con proyectos nativos

    Ventana de terminal
    npx cap sync
  3. Iniciar en arranque de aplicación

    import { SocialLogin } from '@capgo/capacitor-social-login';
    await SocialLogin.initialize({
    google: {
    webClientId: 'your-google-web-client-id',
    iOSClientId: 'your-google-ios-client-id',
    iOSServerClientId: 'your-google-web-client-id',
    mode: 'online',
    },
    apple: {
    clientId: 'your-apple-service-id',
    useProperTokenExchange: true,
    useBroadcastChannel: true,
    },
    facebook: {
    appId: 'your-facebook-app-id',
    },
    twitter: {
    clientId: 'your-twitter-client-id',
    redirectUrl: 'myapp://oauth/twitter',
    },
    oauth2: {
    github: {
    appId: 'your-github-client-id',
    authorizationBaseUrl: 'https://github.com/login/oauth/authorize',
    accessTokenEndpoint: 'https://github.com/login/oauth/access_token',
    redirectUrl: 'myapp://oauth/github',
    scope: 'read:user user:email',
    pkceEnabled: true,
    },
    },
    });

Ejemplos de flujo principal

Ejemplos de flujo principal

Iniciar sesión

Iniciar sesión
await SocialLogin.login({
provider: 'google',
options: { scopes: ['profile', 'email'] },
});
await SocialLogin.login({
provider: 'oauth2',
options: {
providerId: 'github',
scope: 'read:user user:email',
},
});
const status = await SocialLogin.isLoggedIn({ provider: 'google' });
await SocialLogin.logout({ provider: 'google' });
// For providers that support this mode
const authCodeResult = await SocialLogin.getAuthorizationCode({ provider: 'google' });
await SocialLogin.refresh({ provider: 'google', options: {} as never });
const jwt = await SocialLogin.decodeIdToken({
idToken: 'eyJhbGciOi...',
});
const { date } = await SocialLogin.getAccessTokenExpirationDate({
accessTokenExpirationDate: Date.now() + 3600 * 1000,
});
const expired = await SocialLogin.isAccessTokenExpired({
accessTokenExpirationDate: Date.now() + 1000,
});
const active = await SocialLogin.isRefreshTokenAvailable({ refreshToken: 'a-token' });

Modo de trabajo sin conexión de Google

Sección titulada “Modo de trabajo de Google offline”

google.mode: 'offline' devuelve serverAuthCode desde la autenticación. En este modo, logout, isLoggedIn, getAuthorizationCode, y refresh no están disponibles.

Utilice serverAuthCode solamente como entrada para el intercambio de tokens en su servidor. Si necesita llamar SocialLogin.refresh() en la aplicación, utilice google.mode: 'online' en su lugar.

Establezca useProperTokenExchange: true para el manejo de tokens estricto y useBroadcastChannel: true para la configuración simplificada de Android.

Usar OAuth2LoginOptions.flow: 'redirect' para flujos web que navegan lejos de la página.

Puede configurar qué proveedores incluir para reducir el tamaño del archivo nativo. Esto es más útil cuando su aplicación solo necesita proveedores específicos.

Agregar configuración de proveedor a capacitor.config.ts:

import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'MyApp',
webDir: 'dist',
plugins: {
SocialLogin: {
providers: {
google: true,
facebook: true,
apple: true,
twitter: false,
},
logLevel: 1,
},
},
};
export default config;

Valores de proveedor significan:

  • true: el proveedor está habilitado y sus dependencias nativas están empaquetadas.
  • false: el proveedor está deshabilitado y sus dependencias nativas no están empaquetadas.

Detalles importantes:

  • Ejecutar npx cap sync después de cambiar la configuración del proveedor.
  • Si no se proporciona ninguna configuración de proveedor, todos los proveedores se establecen en true por compatibilidad hacia atrás.
  • Deshabilitar un proveedor con false hace que esté inaccesible en tiempo de ejecución, incluso si ese proveedor solo utiliza APIs del sistema.
  • Esta configuración solo afecta a iOS y Android; no afecta a Web.
  • Apple Sign-In en Android utiliza OAuth sin dependencias externas SDK.
  • Twitter/X utiliza OAuth 2.0 estándar sin dependencias externas SDK.

Incluir solo Google Sign-In y Apple Sign-In:

plugins: {
SocialLogin: {
providers: {
google: true,
facebook: false,
apple: true,
twitter: false,
},
},
}

Solución de migración de plugins de Ionic Enterprise

Sección titulada “Sigue adelante desde Inicio”

Si estás utilizando Inicio para planificar la autenticación y los flujos de cuenta, conecta con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-privada para el detalle de implementación en @capgo/capacitor-clave-privada @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Autenticación en dos factores para los detalles de implementación en Autenticación en dos factores.