Prise en main
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce 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.
Installation
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-pluginsUtilisez ensuite le prompt suivant :
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-social-login` plugin in my project.Si vous préférez une installation manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à chaque plateforme ci-dessous :
-
Installer le package
Fenêtre de terminal bun add @capgo/capacitor-social-login -
Synchroniser avec les projets natifs
Fenêtre de terminal bunx cap sync -
Initialisation au démarrage de l’app
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,},},});
Quand les équipes choisissent ce plugin
Section intitulée « Quand les équipes choisissent ce plugin »- Un seul package pour Google, Apple, Facebook, Twitter/X et les fournisseurs OAuth2 ou OIDC personnalisés.
- Connexion Google sur Android via Credential Manager, plutôt que des plugins communautaires obsolètes.
- Fournisseurs de type Ionic Auth Connect via la couche de compatibilité documentée.
- Apps qui doivent partager la connexion code entre les builds mobiles et web.
Exemples de flux principaux
Section intitulée « Exemples de flux principaux »Connexion
Section intitulée « Login »await SocialLogin.login({ provider: 'google', options: { scopes: ['profile', 'email'] },});
await SocialLogin.login({ provider: 'oauth2', options: { providerId: 'github', scope: 'read:user user:email', },});Vérifications de session
Section intitulée « Vérifications de session »const status = await SocialLogin.isLoggedIn({ provider: 'google' });await SocialLogin.logout({ provider: 'google' });Codes d'auth et refresh
Section intitulée « Codes d’authentification et refresh »// For providers that support this modeconst authCodeResult = await SocialLogin.getAuthorizationCode({ provider: 'google' });await SocialLogin.refresh({ provider: 'google', options: {} as never });Helpers avancés
Section intitulée « Helpers avancés »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' });Notes spécifiques aux providers
Section intitulée « Remarques spécifiques au fournisseur »Mode offline Google
Section intitulée « Mode hors ligne Google »google.mode: 'offline' renvoie serverAuthCode de la connexion. Dans ce mode, logout, isLoggedIn, getAuthorizationCode et refresh ne sont pas disponibles.
Utiliser serverAuthCode uniquement en entrée pour l’échange de token avec votre backend. Si vous devez appeler SocialLogin.refresh() dans l’app, utilisez google.mode: 'online' plutôt.
Définissez useProperTokenExchange: true pour une gestion stricte des tokens et useBroadcastChannel: true pour une configuration Android simplifiée.
Flux de redirection web OAuth2
Section intitulée « Flux de redirection web OAuth2 »Utiliser OAuth2LoginOptions.flow: 'redirect' pour les flux web qui quittent la page.
Dépendances dynamiques des providers
Section intitulée « Dépendances dynamiques des providers »Vous pouvez configurer les providers à inclure pour réduire la taille de l'app native. C'est particulièrement utile si votre app n'a besoin que de providers spécifiques.
Ajouter la configuration du provider à 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;Les valeurs du provider signifient :
true: le provider est activé et ses dépendances natives sont incluses dans le bundle.false: le provider est désactivé et ses dépendances natives ne sont pas incluses dans le bundle.
Détails importants :
- Exécutez
bunx cap syncaprès avoir modifié la configuration du provider. - Si aucune configuration de provider n'est fournie, tous les providers sont définis par défaut sur
truepour assurer la compatibilité ascendante. - Désactiver un provider avec
falsele rend indisponible au runtime, même si ce provider n'utilise que des API système. - Cette configuration ne concerne que iOS et Android ; elle n'a aucun impact sur le Web.
- Apple Sign-In sur Android utilise OAuth sans dépendances externes SDK.
- Twitter/X utilise OAuth 2.0 standard, sans dépendances externes SDK.
Pour inclure uniquement Google Sign-In et Apple Sign-In :
plugins: { SocialLogin: { providers: { google: true, facebook: false, apple: true, twitter: false, }, },}Documentation associée
Section intitulée « Documentation associée »- Aperçu des intégrations
- Intégration Better Auth
- Fournisseurs OAuth2 et OIDC
- Troubleshooting
- Manifeste de confidentialité et gestionnaires d’URL iOS
- Migrer d'Ionic Auth Connect
- Guide de migration Social Login Auth Connect
- Migrer les providers legacy
- Solution de migration des plugins Ionic Enterprise
Continuer depuis Getting Started
Section intitulée « Continuer après Prise en main »Si vous utilisez Prise en main pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login pour les détails d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.