본문으로 건너뛰기

Ionic Auth Connect 이관을 @capgo/capacitor-social-login로

GitHub

개요

개요

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

이것이 왜 작동하는가

이것이 왜 작동하는가

이 플러그인은 Ionic Auth Connect와 호환되는 Auth Connect 호환성 래퍼를 포함합니다. SocialLoginAuthConnect이 래퍼는 친숙한 Ionic Auth Connect 제공자 ID를 내장 OAuth2 엔진으로 mapping합니다. auth0, azure이러한 이름을 계속 사용할 수 있습니다. okta.

이러한 이름을 계속 사용할 수 있습니다.

설치
터미널 창
npm install @capgo/capacitor-social-login
npx cap sync

수정된 import를 사용하세요

제목: 수정된 import
// 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',
},
},
});

제목: 지원되는 제공자 ID

로그인, 로그아웃, 토큰 접근
  • 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);

Okta preset 예시

Okta preset 예시 섹션
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 preset 예시

OneLogin preset 예시 섹션
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은 기본 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 기반입니다 제공자 이름만 유지하고, 이온의 원래 구현 세부 사항은 아닙니다.

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

  3. 사용자 정의 엔드포인트는 프리셋을 덮어씁니다 만약 프리셋이 정확하지 않다면, 차이점이 있는 엔드포인트만 오버라이드하세요.

  4. 직접 oauth2 엔트리 승리 만약 둘 다 정의한다면 authConnect.auth0 그리고 oauth2.auth0직접 oauth2 설정은 우선합니다.

관련 문서

아이오닉 인증 연결 마이그레이션에서 계속하기 @capgo/capacitor-social-login

아이오닉 인증 연결 마이그레이션에서 계속하기 @capgo/capacitor-social-login

아이오닉 인증 연결 마이그레이션을 사용 중인 경우 아이오닉 인증 연결 마이그레이션을 사용하여 인증 및 계정 흐름을 계획하고 @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-social-login 아이오닉 인증 연결 마이그레이션에서 @capgo/capacitor-passkey의 구현 세부 사항을 사용하는 경우 @capgo/capacitor-passkey @capgo/capacitor-native-biometric 구현 세부 사항에 대한 @capgo/capacitor-native-biometric, 그리고 두 단계 인증 두 단계 인증 구현 세부 사항에 대한.