본문으로 건너뛰기

Ionic Auth Connect에서 @capgo/capacitor-social-login으로 이동

GitHub

Capgo Capgo는 Google, Apple, Facebook 및 기타 식별자 제공자에 대한 제공자-자연 OAuth2 흐름으로 Ionic Auth Connect를 대체합니다. iOS, Android 및 Web에서 여러 제공자를 하나의 플러그인으로 지원합니다.

왜 이것이 작동하는가

왜 이것이 작동하는가 제목

이 플러그인은 Ionic Auth Connect와 호환되는 인증 연결 호환성 wrapper를 포함합니다. SocialLoginAuthConnect이름을 매핑합니다. auth0, azure이름을 매핑합니다. okta.

터미널 창
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';

제공자 초기화

제공자 초기화

사용할 때 Ionic Auth Connect가 사용한 동일한 제공자 ID를 받으려면: authConnect 클립보드 복사

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

제공자별 예제

제공자별 예제

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);
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);

엔드포인트 오버라이딩

섹션 제목: 엔드포인트 오버라이딩

각 프리셋은 기본 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 문서에서 제공하는 제공자들을 직접 구성하세요:

이동 노트

이동 노트
  1. 호환성 레이어는 OAuth2 기반입니다 제공자 이름은 Ionic의 네이티브 implementation 세부 사항이 아닌 것을 유지합니다.

  2. 리프레시 토큰은 여전히 범위에 의존합니다 요청 offline_access 리프레시 토큰이 필요할 때는, 제공자에 따라 적절한 대체를 사용하세요.

  3. 사용자 정의 엔드포인트는 기본값을 덮어쓸 수 있습니다 기본값이 근사하지만 정확하지 않은 경우, 차이점이 있는 엔드포인트만 덮어쓰세요

  4. 직접 oauth2 직접 항목이 승리합니다 만약에 authConnect.auth0 그리고 oauth2.auth0직접 oauth2 설정은 우선합니다

Keep going from Ionic Auth Connect Migration to @capgo/capacitor-social-login

Section titled “Keep going from Ionic Auth Connect Migration to @capgo/capacitor-social-login”

If you are using Ionic Auth Connect Migration to @capgo/capacitor-social-login 인증 및 계정 흐름을 계획하고 Using @capgo/capacitor-social-login @capgo/capacitor-social-login @capgo/capacitor-social-login @capgo/capacitor-passkey @capgo/capacitor-social-login 구현 세부 사항에 대한 @capgo/capacitor-passkey에 대한 구현 세부 사항에 대한 @capgo/capacitor-native-biometric 구현 세부 사항에 대한 @capgo/capacitor-native-biometric, 그리고 두 단계 인증 구현 세부 사항에 대한 두 단계 인증