Lompat ke konten

Migrasi Ionic Auth Connect ke @capgo/capacitor-login-sosial

GitHub

Capgo Login Sosial menggantikan Ionic Auth Connect dengan aliran OAuth2 native penyedia untuk Google, Apple, Facebook, dan penyedia identitas lainnya. Ini mendukung penyedia multiple dalam satu plugin dan berfungsi di iOS, Android, dan Web.

Plugin ini termasuk wrapper kompatibilitas Auth Connect bernama SocialLoginAuthConnect. Ini menerjemahkan ID penyedia autentikasi Ionic yang familiar menjadi mesin OAuth2 bawaan, sehingga Anda dapat terus menggunakan nama seperti auth0, azure, and okta.

Bagian berjudul “Instal”
bun add @capgo/capacitor-social-login
bunx cap sync

Salin ke clipboard

Ganti import Anda
// Before
import { AuthConnect } from '@ionic-enterprise/auth-connect';
// After
import { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';

Salin ke clipboard

Inisialisasi penyediaan

Gunakan authConnect preset ketika Anda ingin ID penyedia yang sama yang digunakan oleh Ionic Auth Connect:

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',
});
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);
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);
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);

Preset setiap membuat konfigurasi OAuth2 default dari domain atau issuer. Jika penyewa Anda menggunakan endpoint kustom, ubah langsung:

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',
},
},
});

Jika Anda tidak ingin menggunakan preset, konfigurasi penyedia yang sama secara langsung di dokumen OAuth2 umum:

Catatan migrasi

Catatan migrasi
  1. Layer kompatibilitas berbasis OAuth2 Menggunakan nama penyedia, bukan implementasi asli Ionic.

  2. Token refresh masih bergantung pada skop Permintaan offline_access atau setara penyedia khusus ketika Anda membutuhkan token refresh.

  3. Endpoint kustom dapat menggantikan preset Jika presetnya hampir tapi tidak tepat, override hanya endpoint yang berbeda.

  4. Langsung oauth2 masuk Jika Anda mendefinisikan baik authConnect.auth0 dan oauth2.auth0Jika langsung oauth2 Konfigurasi mengambil prioritas.

Teruskan dari Migrasi Ionic Auth Connect ke @capgo/capacitor-social-login

Bab berjudul “Teruskan dari Migrasi Ionic Auth Connect ke @capgo/capacitor-social-login”

Jika Anda menggunakan Migrasi Ionic Auth Connect ke @capgo/capacitor-social-login To merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-login-sosial Untuk kemampuan asli dalam Menggunakan @capgo/capacitor-login-sosial, @capgo/capacitor-login-sosial Untuk detail implementasi dalam @capgo/capacitor-login-sosial, @capgo/capacitor-passkey Untuk detail implementasi dalam @capgo/capacitor-passkey, @capgo/capacitor-biometrik-asli Untuk detail implementasi dalam @capgo/capacitor-biometrik-asli, dan Autentikasi dua faktor Untuk detail implementasi dalam Autentikasi dua faktor.