Facebook Login의 @capgo/social-login 마이그레이션
이 플러그인의 설치 단계와 전체 마크다운 가이드가 포함된 설정 프롬프트를 복사하세요.
개요
“개요” 섹션이 가이드는 다음 단계로의 마이그레이션을 위한 상세한 안내를 제공합니다. @capacitor-community/facebook-login 대상 @capgo/capacitor-social-login. 새 플러그인은 여러 소셜 프로바이더를 지원하는 통합 API를 통해 Facebook 인증을 현대화하며, 개선된 TypeScript 지원과 강화된 기능을 제공합니다.
설치
“설치” 섹션-
기존 패키지를 제거하세요:
터미널 창 npm uninstall @capacitor-community/facebook-login -
새 패키지를 설치하세요:
터미널 창 npm install @capgo/capacitor-social-loginnpx cap sync
Code 변경 사항
“Code 변경 사항” 섹션Import 변경 사항
“변경 사항 가져오기” 섹션import { FacebookLogin } from '@capacitor-community/facebook-login';import { SocialLogin } from '@capgo/capacitor-social-login';초기화
“초기화” 섹션주요 변경 사항: 새 패키지를 사용하려면 code에서 명시적인 설정이 필요합니다:
// Old package required no explicit initialization in code// Configuration was done only in native platforms
// New package requires explicit initializationawait SocialLogin.initialize({ facebook: { appId: 'YOUR_FACEBOOK_APP_ID', // Required for web and Android clientToken: 'YOUR_CLIENT_TOKEN' // Required for Android }});로그인
“로그인” 섹션이제 로그인 메서드에서 provider 파라미터를 지원합니다:
const FACEBOOK_PERMISSIONS = ['email', 'public_profile'];const result = await FacebookLogin.login({ permissions: FACEBOOK_PERMISSIONS });
const result = await SocialLogin.login({ provider: 'facebook', options: { permissions: ['email', 'public_profile'], limitedLogin: false, nonce: 'optional_nonce' }});Response Type 변경 사항
“Response Type Changes” 섹션응답 구조가 더 포괄적인 profile 객체를 포함하도록 개선되었습니다:
// Old response typeinterface FacebookLoginResponse { accessToken: { applicationId: string; userId: string; token: string; expires: string; }; recentlyGrantedPermissions: string[]; recentlyDeniedPermissions: string[];}
// New response typeinterface FacebookLoginResponse { provider: 'facebook'; result: { accessToken: { token: string; applicationId?: string; expires?: string; userId?: string; permissions?: string[]; declinedPermissions?: string[]; } | null; idToken: string | null; profile: { userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number; max?: number } | null; gender: string | null; location: { id: string; name: string } | null; hometown: { id: string; name: string } | null; profileURL: string | null; name: string | null; imageURL: string | null; }; };}주요 변경 사항:
- 응답에 다음 항목이 추가되었습니다:
provider인증 제공자를 식별하는 field - 더 자세히
profile추가 사용자 정보가 포함된 객체 - 모든 소셜 로그인 제공업체에서 일관된 구조
로그인 상태 확인
“로그인 상태 확인” 섹션const result = await FacebookLogin.getCurrentAccessToken();const isLoggedIn = result && result.accessToken;
const status = await SocialLogin.isLoggedIn({ provider: 'facebook'});const isLoggedIn = status.isLoggedIn;로그아웃
“로그아웃” 섹션await FacebookLogin.logout();
await SocialLogin.logout({ provider: 'facebook'});플랫폼별 변경 사항
“플랫폼별 변경 사항” 섹션Android 설정
“Android Setup” 섹션이제 initialize 메서드를 통해 설정을 관리합니다:
// AndroidManifest.xml changes remain the same// strings.xml become irrelevant// Additionally initialize in your code:await SocialLogin.initialize({ facebook: { appId: 'your-app-id', clientToken: 'your-client-token' // New requirement }});중요: Android 인증 시 Client token이 필수입니다.
iOS 설정
“iOS Setup” 섹션- iOS 설정은
AppDelegate.swift기존과 동일합니다:
import FBSDKCoreKit
// In application:didFinishLaunchingWithOptions:FBSDKCoreKit.ApplicationDelegate.shared.application( application, didFinishLaunchingWithOptions: launchOptions)
// In application:openURL:options:ApplicationDelegate.shared.application( app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])- 이
Info.plist설정 방식은 동일합니다:
<key>CFBundleURLTypes</key><array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb[APP_ID]</string> </array> </dict></array><key>FacebookAppID</key><string>[APP_ID]</string><key>FacebookClientToken</key><string>[CLIENT_TOKEN]</string><key>FacebookDisplayName</key><string>[APP_NAME]</string><key>LSApplicationQueriesSchemes</key><array> <string>fbapi</string> <string>fbauth</string> <string>fb-messenger-share-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>주요 변경 사항
“Breaking Changes” 섹션마이그레이션 시 주의해야 할 주요 변경 사항:
- 이제 명시적 초기화가 필요합니다 - 반드시 호출해야 함:
initialize()사용 전 호출 필요 - Response 객체 구조가 크게 변경되었습니다. - 프로필 데이터가 강화된 새로운 중첩 result 형식 적용
- Android에서 Client token이 필수 항목으로 변경되었습니다. - 추가 설정 필요
- 메서드 이름 및 파라미터 구조 변경 - 프로바이더 기반 방식
- 에러 핸들링 및 에러 타입이 변경되었습니다 - 더 상세한 에러 정보
주요 장점
“주요 장점” 섹션새 플러그인은 다음을 제공합니다:
- 통합된 API 여러 소셜 프로바이더(Google, Apple, Facebook) 전반에 걸쳐
- 개선된 TypeScript 지원 더 나은 타입 정의와 함께
- 강화된 프로필 데이터 더 많은 사용자 정보 포함
- 활발한 유지보수 및 커뮤니티 지원
- 일관된 에러 핸들링 모든 프로바이더 대상
- 개선된 토큰 관리 정확한 만료 처리 포함
자세한 설정 방법은 다음을 공식 문서.
Facebook Login Migration에서 @capgo/social-login로 계속하기
“Keep going from Facebook Login Migration to @capgo/social-login” 섹션을 참조하세요사용 중이라면 Facebook Login의 @capgo/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의 구현 세부 사항은, 2단계 인증 2단계 인증의 구현 세부 사항에 대해서는