Configuración inicial
Copia un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-social-login`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/social-login/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalación
Sección titulada “Instalación”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:
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-pluginsLuego 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:
-
Instalar el paquete
Ventana de terminal npm install @capgo/capacitor-social-login -
Sincronizar con proyectos nativos
Ventana de terminal npx cap sync -
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 principalIniciar sesión
Iniciar sesiónawait SocialLogin.login({ provider: 'google', options: { scopes: ['profile', 'email'] },});
await SocialLogin.login({ provider: 'oauth2', options: { providerId: 'github', scope: 'read:user user:email', },});Verificaciones de sesión
Sección titulada “Verificaciones de sesión”const status = await SocialLogin.isLoggedIn({ provider: 'google' });await SocialLogin.logout({ provider: 'google' });Códigos de autenticación y refresco
Sección titulada “Códigos de autenticación y refresco”// For providers that support this modeconst authCodeResult = await SocialLogin.getAuthorizationCode({ provider: 'google' });await SocialLogin.refresh({ provider: 'google', options: {} as never });Ayudas avanzadas
Sección titulada “Ayudas avanzadas”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' });Notas específicas del proveedor
Sección titulada “Notas específicas del proveedor”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.
Flujo de redireccionamiento web OAuth2
Sección titulada “Flujo de redireccionamiento web OAuth2”Usar OAuth2LoginOptions.flow: 'redirect' para flujos web que navegan lejos de la página.
Dependencias de proveedores dinámicas
Sección titulada “Dependencias de proveedores dinámicas”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 syncdespués de cambiar la configuración del proveedor. - Si no se proporciona ninguna configuración de proveedor, todos los proveedores se establecen en
truepor compatibilidad hacia atrás. - Deshabilitar un proveedor con
falsehace 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, }, },}Documentación relacionada
Título de la sección “Documentación relacionada”- Visión general de integraciones
- Mejor Autenticación de integración
- Proveedores de OAuth2 y OIDC
- Solución de problemas
- context: Soporte / página de soporte premium o sección de soporte en el pie de página. Rol: Título de sección o página. Visto en: página support-policy.astro. Clave de mensaje `support_policy_troubleshooting_title` (Título de política de soporte de solución de problemas).
- Manifiesto de privacidad y manipuladores de URL de iOS
- Migrar desde Ionic Auth Connect
- Guía de migración de Social Login Auth Connect
- Migrar proveedores legados
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.