Ionic Auth Connect 迁移到 @capgo/capacitor-social-login
复制安装提示并包含本插件的完整Markdown指南。
Capgo 社会登录将Ionic Auth Connect替换为Google、Apple、Facebook和其他身份提供商的提供商原生OAuth2流程。它支持多个提供商在一个插件中,并在iOS、Android和Web上工作。
为什么会这样
Section titled “为什么这有效”该插件包含一个名为Auth Connect的兼容性包装器 SocialLoginAuthConnect它将熟悉的Ionic Auth Connect提供者ID映射到内置的OAuth2引擎,因此您可以继续使用名称如 auth0, azure和 okta.
安装
终端窗口npm install @capgo/capacitor-social-loginnpx cap syncSection titled “替换您的导入”
初始化提供者// Beforeimport { AuthConnect } from '@ionic-enterprise/auth-connect';
// Afterimport { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';Section titled “为什么这有效”
初始化提供者使用 authConnect 预设值时, Ionic Auth Connect 使用的相同提供者 ID:
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
登录、注销和令牌访问auth0azurecognitooktaonelogin
提供者特定预设值示例
Auth0 预设值示例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',});登录、注销和令牌访问
提供者特定预设值示例Auth0 预设值示例
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);Azure 预设示例
Azure 预设示例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);Cognito 预设示例
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);Okta 预设示例
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);OneLogin 预设示例
标题: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);覆盖端点
标题:覆盖端点每个预设都从 domain 或 issuer如果您的租户使用自定义端点,请直接覆盖它们:
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', }, },});直接 OAuth2 配置
标题:直接 OAuth2 配置如果您不想使用预设,请在通用 OAuth2 文档中直接配置相同的提供商:
迁移说明
迁移说明-
兼容层基于OAuth2 它保留了提供者的名称,而不是Ionic的原生实现细节。
-
刷新令牌仍然依赖于范围 请求
offline_access或当您需要刷新令牌时,使用提供商特定的等效项。 -
自定义端点可以覆盖预设值 如果预设值很接近但不是精确的,仅覆盖差异的端点。
-
直接
oauth2条目获胜 如果您定义了两者authConnect.auth0和oauth2.auth0,直接配置oauth2配置优先
相关文档
相关文档继续 Ionic Auth Connect 迁移到 @capgo/capacitor-social-login
继续 Ionic Auth Connect 迁移到 @capgo/capacitor-social-login如果您正在使用 ionic Auth Connect 迁移至 @capgo/capacitor-social-login 为计划身份验证和帐户流程,连接它 使用 @capgo/capacitor-social-login 为 @capgo/capacitor-social-login 原生能力 @capgo/capacitor-社交登录 为 @capgo/capacitor-social-login 实现细节 @capgo/capacitor-passkey 为 @capgo/capacitor-passkey 实现细节 @capgo/capacitor-native-biometric 为 @capgo/capacitor-native-biometric 实现细节, 双因素身份验证 为双因素身份验证实现细节