Ionic Auth Connect-Migration zu @capgo/capacitor-social-login
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Übersicht
Abschnitt mit dem Titel „Übersicht“Capgo Soziale Anmeldung ersetzt Ionic Auth Connect mit einem Providernativen OAuth2-Flow für Google, Apple, Facebook und andere Identitätsanbieter. Es unterstützt mehrere Anbieter in einem Plugin und funktioniert auf iOS, Android und Web.
Warum das funktioniert
Abschnitt mit dem Titel „Warum das funktioniert“Das Plugin enthält einen Auth Connect-Kompatibilitätswrapper mit dem Namen SocialLoginAuthConnectEs mappiert bekannte Ionic Auth Connect-Anbieter-IDs auf den eingebauten OAuth2-Motor, sodass Sie weiterhin Namen wie auth0, azure, und verwenden können okta.
Installieren
Abschnitt: Installierenbun add @capgo/capacitor-social-loginbunx cap syncErsetzen Sie Ihre Importe
Abschnitt: Ersetzen Sie Ihre Importe// Beforeimport { AuthConnect } from '@ionic-enterprise/auth-connect';
// Afterimport { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';Initialisieren Sie die Anbieter
Abschnitt: Initialisieren Sie die AnbieterVerwenden Sie die authConnect Voreinstellungen, wenn Sie die gleichen Anbieter-IDs verwenden möchten, die Ionic Auth Connect verwendet hat:
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', }, },});Unterstützte Anbieter-IDs
Abschnitt: Unterstützte Anbieter-IDsauth0azurecognitooktaonelogin
Anmeldung, Abmeldung und Token-Zugriff
Abschnitt: Anmeldung, Abmeldung und Token-Zugriffconst 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',});Beispiel für Anbieter-spezifische Voreinstellungen
Abschnitt: Beispiel für Anbieter-spezifische VoreinstellungenBeispiel für Auth0-Voreinstellungen
Abschnitt: Beispiel für Auth0-Voreinstellungenawait 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);Beispiel für Azure-Voreinstellungen
Abschnitt: Beispiel für Azure-Voreinstellungenawait 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);Beispiel für Cognito-Voreinstellung
Abschnitt mit dem Titel „Beispiel für Cognito-Voreinstellung“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);Beispiel für Okta-Voreinstellung
Abschnitt mit dem Titel „Beispiel für Okta-Voreinstellung“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);Beispiel für OneLogin-Voreinstellung
Abschnitt mit dem Titel „Beispiel für OneLogin-Voreinstellung“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);Übergeordnete Endpunkte überschreiben
Abschnitt mit dem Titel „Übergeordnete Endpunkte überschreiben“Jeder Voreinstellung erstellt eine Standardkonfiguration für OAuth2 von domain oder issuerAuf die Zwischenablage kopieren
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', }, },});Abschnitt mit dem Titel „Direkte OAuth2-Konfiguration“
Wenn Sie keine Voreinstellungen verwenden möchten, konfigurieren Sie die gleichen Anbieter direkt in den allgemeinen OAuth2-Dokumenten:Leitfaden für den OAuth2- und OIDC-Anbieter
Abschnitt mit dem Titel „Migrationshinweise“
Die Kompatibilitätslayer ist OAuth2-basiert-
Sie behält die Anbieternamen bei, nicht die Implementierungsdetails von Ionics nativem Die Kompatibilitätslayer ist OAuth2-basiert. Sie behält die Anbieternamen bei, nicht die Implementierungsdetails von Ionics nativem Implementation.
-
Sind Refresh-Tokens noch immer von den Berechtigungen abhängig Anfrage
offline_accessoder die vom Anbieter spezifische Äquivalent, wenn Sie Refresh-Tokens benötigen -
Benutzerdefinierte Endpunkte können Voreinstellungen überschreiben Wenn die Voreinstellung nah dran ist, aber nicht genau ist, überschreiben Sie nur die Endpunkte, die sich unterscheiden
-
Direkt
oauth2Einträge gewinnen Wenn Sie sowohlauthConnect.auth0undoauth2.auth0definieren, hat die direkteoauth2Konfiguration Vorrang