Migrazione di Ionic Auth Connect a @capgo/capacitor-login-social
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Panoramica
Sezione intitolata “Panoramica”Capgo Il Social Login sostituisce Ionic Auth Connect con un flusso OAuth2 nativo del provider per Google, Apple, Facebook e altri provider di identità. Supporta più provider in un unico plugin e funziona su iOS, Android e Web.
Perché funziona
Sezione intitolata “Perché funziona”Il plugin include un wrapper di compatibilità di Auth Connect denominato SocialLoginAuthConnectMappa gli ID di provider di Ionic Auth Connect noti a quello di OAuth2 integrato, in modo da poter continuare ad utilizzare nomi come auth0, azure, e okta.
Installa
Sezione intitolata “Installa”bun add @capgo/capacitor-social-loginbunx cap syncSostituisci le tue importazioni
Sezione intitolata “Sostituisci le tue importazioni”// Beforeimport { AuthConnect } from '@ionic-enterprise/auth-connect';
// Afterimport { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';Inizializza i provider
Sezione intitolata “Inizializza i provider”Utilizza i authConnect preset quando desideri gli stessi ID dei provider che Ionic Auth Connect utilizzava:
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', }, },});ID dei provider supportati
Sezione intitolata “ID dei provider supportati”auth0azurecognitooktaonelogin
Accesso, disconnessione e accesso al token
Sezione intitolata “Accesso, disconnessione e accesso al token”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',});Esempi di preset specifici del provider
Esempio di preset Auth0Sezione intitolata “Esempio di preset Auth0”
Copia negli appuntiawait 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);Sezione intitolata “Esempio di preset Azure”
Copia negli appuntiawait 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);Esempio di preset Cognito
Sezione intitolata “Esempio di preset 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);Esempio di preset Okta
Sezione intitolata “Esempio di preset 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);Esempio di preset OneLogin
Sezione intitolata “Esempio di preset 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);Sovrascrittura degli endpoint
Sezione intitolata “Sovrascrittura degli endpoint”Ciascun preset crea una configurazione OAuth2 di default da domain o issuerCopia negli appunti
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', }, },});Sezione intitolata “Configurazione OAuth2 diretta”
Se non desideri utilizzare i preset, configura i provider nello stesso modo nella guida OAuth2 generica:Guida al provider OAuth2 e OIDC
Sezione intitolata “Nota di migrazione”
Il layer di compatibilità è basato su OAuth2-
Mantiene i nomi dei provider, non i dettagli di implementazione nativi di Ionic. Copia negli appunti
-
I token di refresh dipendono ancora dai permessi Richiesta
offline_accesso l'equivalente specifico del provider quando hai bisogno di token di refresh. -
I punti di accesso personalizzati possono sovrascrivere i preset Se il preset è vicino ma non esatto, sovrascrivi solo i punti di accesso che differiscono.
-
Diretto
oauth2le vittorie degli ingressi Se definisci siaauthConnect.auth0eoauth2.auth0, la configurazione diretta ha la precedenza.oauth2Documentazione correlata