Migration Ionic Auth Connect vers @capgo/capacitor-social-login
Copiez un prompt de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
Capgo L'authentification sociale remplace Auth Connect Ionic par un flux OAuth2 natif du fournisseur pour Google, Apple, Facebook et autres fournisseurs d'identité. Il prend en charge plusieurs fournisseurs dans un seul plugin et fonctionne sur iOS, Android et Web.
Pourquoi cela fonctionne
Section intitulée « Pourquoi cela fonctionne »Le plugin inclut un wrapper de compatibilité d'Auth Connect nommé SocialLoginAuthConnectIl cartographie les identifiants de fournisseur d'Auth Connect Ionic familiers vers l'engin OAuth2 intégré, afin que vous puissiez continuer à utiliser des noms comme auth0, azure, et okta.
Installer
Section intitulée « Installer »bun add @capgo/capacitor-social-loginbunx cap syncRemplacez vos importations
Section intitulée « Remplacez vos importations »// Beforeimport { AuthConnect } from '@ionic-enterprise/auth-connect';
// Afterimport { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';Initialiser les fournisseurs
Section intitulée « Initialiser les fournisseurs »Utilisez les authConnect préférences lorsque vous voulez les mêmes identifiants de fournisseur que Ionic Auth Connect utilisait :
await SocialLoginAuthConnect.initialize({ authConnect: { auth0: { domain: 'https://your-tenant.auth0.com', clientId: 'your-auth0-client-id', redirectUrl: 'myapp://oauth/auth0', audience: 'https://your-api.example.com', }, azure: { tenantId: 'common', clientId: 'your-azure-client-id', redirectUrl: 'myapp://oauth/azure', }, cognito: { domain: 'https://your-domain.auth.region.amazoncognito.com', clientId: 'your-cognito-client-id', redirectUrl: 'myapp://oauth/cognito', }, okta: { issuer: 'https://dev-12345.okta.com/oauth2/default', clientId: 'your-okta-client-id', redirectUrl: 'myapp://oauth/okta', }, onelogin: { issuer: 'https://your-tenant.onelogin.com/oidc/2', clientId: 'your-onelogin-client-id', redirectUrl: 'myapp://oauth/onelogin', }, },});Identifiants de fournisseur pris en charge
Section intitulée « Identifiants de fournisseur pris en charge »auth0azurecognitooktaonelogin
Accès à l'authentification, à la déconnexion et au jeton
Section intitulée « Accès à l'authentification, à la déconnexion et au jeton »const result = await SocialLoginAuthConnect.login({ provider: 'auth0',});
const status = await SocialLoginAuthConnect.isLoggedIn({ provider: 'auth0',});
const code = await SocialLoginAuthConnect.getAuthorizationCode({ provider: 'auth0',});
await SocialLoginAuthConnect.logout({ provider: 'auth0',});Exemples de préférences spécifiques au fournisseur
Section intitulée « Exemples de préférences spécifiques au fournisseur »Exemple de préférence Auth0
Section intitulée « Exemple de préférence Auth0 »await SocialLoginAuthConnect.initialize({ authConnect: { auth0: { domain: 'https://your-tenant.auth0.com', clientId: 'your-auth0-client-id', redirectUrl: 'myapp://oauth/auth0', audience: 'https://your-api.example.com', }, },});
const auth0Result = await SocialLoginAuthConnect.login({ provider: 'auth0',});
console.log(auth0Result.result.idToken);Exemple de préférence Azure
Section intitulée « Exemple de préférence Azure »await SocialLoginAuthConnect.initialize({ authConnect: { azure: { tenantId: 'common', clientId: 'your-azure-client-id', redirectUrl: 'myapp://oauth/azure', }, },});
const azureResult = await SocialLoginAuthConnect.login({ provider: 'azure',});
console.log(azureResult.result.resourceData);Exemple de configuration Cognito
Section intitulée « Exemple de configuration Cognito »await SocialLoginAuthConnect.initialize({ authConnect: { cognito: { domain: 'https://your-domain.auth.region.amazoncognito.com', clientId: 'your-cognito-client-id', redirectUrl: 'myapp://oauth/cognito', }, },});
const cognitoResult = await SocialLoginAuthConnect.login({ provider: 'cognito',});
console.log(cognitoResult.result.idToken);Exemple de configuration Okta
Section intitulée « Exemple de configuration Okta »await SocialLoginAuthConnect.initialize({ authConnect: { okta: { issuer: 'https://dev-12345.okta.com/oauth2/default', clientId: 'your-okta-client-id', redirectUrl: 'myapp://oauth/okta', }, },});
const oktaResult = await SocialLoginAuthConnect.login({ provider: 'okta',});
console.log(oktaResult.result.resourceData);Exemple de configuration OneLogin
Section intitulée « Exemple de configuration OneLogin »await SocialLoginAuthConnect.initialize({ authConnect: { onelogin: { issuer: 'https://your-tenant.onelogin.com/oidc/2', clientId: 'your-onelogin-client-id', redirectUrl: 'myapp://oauth/onelogin', }, },});
const oneloginResult = await SocialLoginAuthConnect.login({ provider: 'onelogin',});
console.log(oneloginResult.result.idToken);Surcharge des points de terminaison
Section intitulée « Surcharge des points de terminaison »Chaque préfixe crée une configuration OAuth2 par défaut à partir de domain ou issuerCopier dans le presse-papier
await SocialLoginAuthConnect.initialize({ authConnect: { onelogin: { issuer: 'https://your-tenant.onelogin.com/oidc/2', clientId: 'your-onelogin-client-id', redirectUrl: 'myapp://oauth/onelogin', authorizationBaseUrl: 'https://your-tenant.onelogin.com/oidc/2/auth', accessTokenEndpoint: 'https://your-tenant.onelogin.com/oidc/2/token', resourceUrl: 'https://your-tenant.onelogin.com/oidc/2/me', logoutUrl: 'https://your-tenant.onelogin.com/oidc/2/logout', }, },});Section intitulée “Configuration OAuth2 directe”
Si vous ne souhaitez pas utiliser les préfixes, configurez les mêmes fournisseurs directement dans les documents OAuth2 génériques :Guide des fournisseurs OAuth2 et OIDC
Section intitulée “Notes de migration”
Le layer de compatibilité est basé sur OAuth2-
Il conserve les noms des fournisseurs, pas les détails d'implémentation natives d'Ionic. ou
-
Les jetons de rafraîchissement dépendent toujours des étendues Demande
offline_accessou l'équivalent spécifique au fournisseur lorsque vous avez besoin de jetons de rafraîchissement. -
Les points de terminaison personnalisés peuvent surécrire les valeurs par défaut Si le modèle par défaut est proche mais pas exact, surécrivez uniquement les points de terminaison qui diffèrent.
-
Direct
oauth2les entrées gagnent Si vous définissez à la foisauthConnect.auth0etoauth2.auth0, la configuration directe prend la priorité.oauth2Documentation connexe