Apple Sign-In @capgo/social-login으로 마이그레이션
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 명령어를 복사하세요.
이 가이드는 레거시에서 전환하는 것을 설명합니다. @capacitor-community/apple-sign-in plugin을 현대적인 @capgo/capacitor-social-login 패키지입니다. 새로운 플러그인은 여러 가지 소셜 인증 제공자에 대한 통합 인터페이스를 제공하며 향상된 TypeScript 지원 및 활발한 유지 관리를 제공합니다.
설치
설치-
기존 패키지를 삭제하세요:
터미널 창 npm uninstall @capacitor-community/apple-sign-in -
새로운 패키지를 설치하세요:
터미널 창 npm install @capgo/capacitor-social-loginnpx cap sync
Code 변경 사항
Section titled “Code Changes”변경 사항 가져오기
변경 사항 가져오기 섹션import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';초기화
초기화 섹션키 변경: 새로운 플러그인은 이전에 필요하지 않았던 초기화 단계가 필요합니다.
// No initialization needed in old package// For iOS: Basic configurationawait SocialLogin.initialize({ apple: {} // Basic iOS configuration});
// For Android: Additional configuration requiredawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL }});중요한 주의: iOS에서는 기본 구성 정보를 제공하지만 Android에서는 Service ID와 웹 기반 OAuth 인증을 위한 백엔드 콜백 URL과 같은 추가적인 세부 정보가 필요합니다.
로그인
로그인 섹션로그인 프로세스는 여러 매개 변수에서 더 간단한 API:로 단순화됩니다.
const result = await SignInWithApple.authorize({ clientId: 'com.your.app', redirectURI: 'https://your-app.com/callback', scopes: 'email name', state: '12345', nonce: 'nonce'});
const result = await SocialLogin.login({ provider: 'apple', options: { // Optional: Add scopes if needed scopes: ['email', 'name'], nonce: 'nonce' }});새로운 플러그인은 login() 와 선택적 범위 대신 provider: 'apple' 개별 구성 값처럼 clientId 와 redirectURI.
응답 유형 변경
응답 유형 변경결과에는 이제 accessToken 객체와 만료 날짜 세부 정보가 포함된 구조화된 profile 구조화된
// Old response typeinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// New response typeinterface SocialLoginResponse { provider: 'apple'; result: { accessToken: { token: string; expiresIn?: number; refreshToken?: string; } | null; idToken: string | null; profile: { user: string; email: string | null; givenName: string | null; familyName: string | null; }; };}새로운 기능
새로운 기능업데이트된 플러그인은 전신보다 새로운 기능을 제공합니다.
로그인 상태 확인
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});로그아웃 기능
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});이 메서드는 인증 상태를 확인하고 isLoggedIn() 기능을 제공합니다. logout() 플랫폼별 변경 사항
iOS 설정
iOS 설정 섹션iOS iOS는 Xcode 기능을 통해 익숙한 설정 절차를 유지합니다:
- iOS 설정은 여전히 크게 변경되지 않았습니다. 여전히 다음을 수행해야 합니다:
- Xcode에서 "Apple과 함께 로그인" 기능을 활성화해야 합니다.
- 애플 개발자 포털에서 앱을 구성해야 합니다.
- iOS에 대한 추가 code 변경 사항이 필요하지 않습니다.
안드로이드 설정
Section titled “Android Setup”안드로이드 안드로이드는 웹 기반 OAuth 인증을 통해 네이티브 지원을 받습니다:
새로운 플러그인은 안드로이드 지원을 기본으로 제공하지만 추가 설정이 필요합니다:
- 애플 개발자 포털에서 서비스 ID를 생성하세요
- 웹 인증 엔드포인트를 구성하세요
- 안드로이드 앱을 OAuth 흐름을 처리하도록 설정하세요
- 백엔드 서비스 구성이 필요합니다
상세한 안드로이드 설정 지침을 참조하려면 안드로이드 설정 안내서.
주요 이점
주요 이점최신화된 패키지는 다음과 같은 기능을 제공합니다:
- 통합 API 여러 가지 소셜 제공자 (Google, Facebook, Apple)across
- TypeScript의 개선된 타이핑 보다 완벽한 타입 정의
- 활발한 커뮤니티 유지 deprecated 버전과 비교하여
- 내장 Android 지원 웹 기반 인증을 통해
- 지속 로그인 상태 관리
- 일관된 오류 유형과 함께 개선된 오류 처리
Breaking Changes
“Breaking Changes”라는 제목의 섹션- explicit 초기화가 이제 필요합니다 - 기본 설정이 없습니다
- 응답 객체 구조가 변경되었습니다 - 중첩된 결과 형식
- Android 구현은 백엔드 서비스가 필요합니다 OAuth에 대한
- 토큰 갱신 처리가 다릅니다 - 토큰 관리가 개선되었습니다
- 오류 처리 및 오류 유형이 변경되었습니다 - 더 자세한 오류
더 자세한 설정 방법에 대한 안내는 공식 문서를 참조하십시오 편집 페이지.