Zum Inhalt springen

Ionic Auth Connect Migration zu @capgo/capacitor-social-login

GitHub

Übersicht

Übersicht

Capgo Mit Social Login ersetzt Capgo Ionic Auth Connect durch einen provider-übergreifenden OAuth2-Flow für Google, Apple, Facebook und andere Identitätsanbieter. Es unterstützt mehrere Anbieter in einer Plugin und funktioniert auf iOS, Android und Web.

Warum das funktioniert

Warum das funktioniert

Das Plugin enthält einen Auth Connect-Kompatibilitätswrapper namens SocialLoginAuthConnectEs mappiert bekannte Ionic Auth Connect-Anbieter-IDs auf den integrierten OAuth2-Motor, sodass Sie weiterhin Namen wie auth0, azure, und okta.

Installieren

Terminalfenster
In die Zwischenablage kopieren
npm install @capgo/capacitor-social-login
npx cap sync
// Before
import { AuthConnect } from '@ionic-enterprise/auth-connect';
// After
import { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';

Verwenden Sie die authConnect Voreinstellungen, wenn Sie die gleichen Anbieter-IDs wie Ionic Auth Connect verwenden möchten:

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',
},
},
});
  • auth0
  • azure
  • cognito
  • okta
  • onelogin
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',
});

Beispiel für Provider-spezifische Voreinstellungen

Abschnitt: Beispiele für Provider-spezifische Voreinstellungen

Beispiel für Auth0-Voreinstellungen

Abschnitt: Beispiele für Auth0-Voreinstellungen
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);

Beispiel für Azure-Voreinstellungen

Abschnitt: Beispiele für Azure-Voreinstellungen
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);

Beispiel für Cognito-Voreinstellungen

Abschnitt: Beispiele für Cognito-Voreinstellungen
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);
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);
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);

oder domain Wenn Ihr Mandanten benutzerdefinierte Endpunkte verwendet, überschreiben Sie sie direkt: 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',
},
},
});

Wenn Sie keine Voreinstellungen verwenden möchten, konfigurieren Sie die gleichen Anbieter direkt in den allgemeinen OAuth2-Dokumenten:

  1. Die Kompatibilitätslayer basiert auf OAuth2 Sie behält die Anbieternamen bei, nicht die Implementierungsdetails von Ionics native

  2. Die Aktualisierungstoken hängen weiterhin von den Berechtigungen ab Anfrage offline_access oder dem provider-spezifischen Äquivalent, wenn Sie Aktualisierungstoken benötigen

  3. Benutzerdefinierte Endpunkte können Voreinstellungen überschreiben Wenn die Voreinstellung nah, aber nicht genau ist, überschreiben Sie nur die Endpunkte, die sich unterscheiden

  4. Direkt oauth2 Einträge gewinnen Wenn Sie beide definieren authConnect.auth0 und oauth2.auth0, hat die direkte oauth2 Konfiguration Vorrang.

Weitermachen von Ionic Auth Connect Migration zu @capgo/capacitor-social-login

Abschnitt mit dem Titel „Weitermachen von Ionic Auth Connect Migration zu @capgo/capacitor-social-login“

Wenn Sie Ionic Auth Connect Migration verwenden Ionic Auth Connect Migration zu @capgo/capacitor-social-login für die Planung der Authentifizierung und der Kontenflüsse, verbinden Sie es mit Verwenden von @capgo/capacitor-social-login für die native Fähigkeit in Verwenden von @capgo/capacitor-social-login @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.