Pular al contenido

Migración de Ionic Auth Connect a @capgo/capacitor-login-social

GitHub

Capgo La autenticación de inicio de sesión de Capgo reemplaza la autenticación de Ionic Connect con un flujo de OAuth2 nativo del proveedor para Google, Apple, Facebook y otros proveedores de identidad. Soporta múltiples proveedores en un plugin y funciona en iOS, Android y Web.

El plugin incluye un wrapper de compatibilidad de Auth Connect con el nombre de SocialLoginAuthConnect. Mapea IDs de proveedores de autenticación Ionic Auth Connect familiares a la motor de OAuth2 integrada, por lo que puedes seguir utilizando nombres como auth0, azure, y okta.

Ventana de terminal
bun add @capgo/capacitor-social-login
bunx cap sync
// Before
import { AuthConnect } from '@ionic-enterprise/auth-connect';
// After
import { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';

Use the authConnect cuando desees los mismos IDs de proveedor que Ionic Auth Connect utilizó:

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

Acceso de inicio de sesión, cierre de sesión y token

Sección titulada “Acceso de inicio de sesión, cierre de sesión y 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',
});
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);

Cada preset crea una configuración de OAuth2 por defecto desde domain o issuer. Si su inquilino utiliza puntos finales personalizados, sobreescribirlas directamente:

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

Si no quiere presets, configure los mismos proveedores directamente en los documentos de OAuth2 genéricos:

Notas de migración

Nota de migración
  1. La capa de compatibilidad está basada en OAuth2 Mantiene los nombres de proveedor, no los detalles de implementación nativos de Ionic

  2. Los tokens de actualización todavía dependen de los alcances Solicitud offline_access o el equivalente específico del proveedor cuando necesite tokens de actualización

  3. Los puntos finales personalizados pueden sobreescribir los conjuntos de valores por defecto Si el conjunto de valores por defecto es cercano pero no exacto, sobreescriba solo los puntos finales que difieren

  4. Directo oauth2 los valores ganan Si define tanto authConnect.auth0 y oauth2.auth0directamente oauth2 la configuración tiene prioridad.

Sigue adelante desde Migración de inicio de sesión social de Ionic Auth Connect a @capgo/capacitor-social-login

Sección titulada “Sigue adelante desde Migración de inicio de sesión social de Ionic Auth Connect a @capgo/capacitor-social-login”

Si estás utilizando Migración de inicio de sesión social de Ionic Auth Connect a @capgo/capacitor-social-login para planificar la autenticación y los flujos de cuenta, conecte con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social @capgo/capacitor-passkey para el detalle de implementación en @capgo/capacitor-passkey @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa y Autenticación en dos factores para el detalle de implementación en Autenticación en dos factores.