Ionic Auth Connect の移行から @capgo/capacitor-social-login まで
__CAPGO_KEEP_0__
概要
概要Capgo Capgoのソーシャルログインは、Google、Apple、Facebook、他社のIDプロバイダー用に、プロバイダー固有のOAuth2フローでIonic Auth Connectを置き換えます。iOS、Android、Webで動作するため、複数のプロバイダーを1つのプラグインでサポートします。
なぜこれが機能するか
なぜこれが機能するかプラグインには、Auth Connectの互換性のためのラッパーとして名付けられた SocialLoginAuthConnect です。このラッパーは、Ionic Auth ConnectのプロバイダーIDを、組み込みのOAuth2エンジンにマップします。これにより、名前として auth0, azure などを使用できます。 okta.
インストール
インストールnpm install @capgo/capacitor-social-loginnpx cap syncインポートを置き換えます
「インポートを置き換えます」のセクション// Beforeimport { AuthConnect } from '@ionic-enterprise/auth-connect';
// Afterimport { SocialLoginAuthConnect } from '@capgo/capacitor-social-login';プロバイダーを初期化します
「プロバイダーを初期化します」のセクション使用する authConnect Capacitor 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
「サポートされているプロバイダー ID」のセクションauth0azurecognitooktaonelogin
ログイン、ログアウト、トークン アクセス
「ログイン、ログアウト、トークン アクセス」のセクション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 preset example
Okta preset exampleawait 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 preset example
OneLogin preset exampleawait 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);エンドポイントのオーバーライド
各プリセットはデフォルトのOAuth2構成を生成します。または 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または、リフレッシュトークンが必要な場合にプロバイダー固有のエクイバレントを使用してください。 -
カスタムエンドポイントはプリセットを上書きできます プリセットが近いが正確ではない場合、異なるエンドポイントのみをオーバーライドしてください。
-
Direct
oauth2エントリが勝つ あなたが両方の定義をしている場合authConnect.auth0そしてoauth2.auth0、直接oauth2configが優先されます。
関連するドキュメント
Social Loginの導入Ionic Auth Connectから@capgo/capacitor-social-loginに進む
セクション: Ionic Auth Connectから@capgo/capacitor-social-loginに進むIonic Auth Connectを使用している場合 Ionic Auth Connectから@capgo/capacitor-social-loginに進む 認証とアカウントフローの計画に使用している場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginと接続する @capgo/capacitor-social-loginを使用 @capgo/capacitor-social-loginのネイティブ機能 @capgo/capacitor-social-loginの実装詳細 @capgo/capacitor-passkey @capgo/capacitor-passkeyの実装詳細 Ionic Auth Connectから@capgo/capacitor-social-loginに進む @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and 2要素認証 2要素認証の実装詳細について