콘텐츠로 건너뛰기

Supabase Apple 로그인 iOS 설정

이 가이드는 iOS에서 Supabase Authentication과 Apple Sign-In을 통합하는 데 도움이 됩니다. 다음을 이미 완료했다고 가정합니다:

전체 구현은 예제 앱의 supabaseAuthUtils.ts 파일에서 사용할 수 있습니다. 이 가이드는 주요 개념과 사용 방법을 설명합니다.

authenticateWithAppleSupabase 함수는 전체 인증 흐름을 처리합니다:

import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();
if (result.success) {
console.log('Signed in:', result.user);
// 인증된 영역으로 이동합니다
} else {
console.error('Error:', result.error);
}

iOS에서 Apple Sign-In은 기본 구현을 사용합니다:

  1. 초기화: 플러그인은 앱의 번들 ID를 자동으로 사용합니다(clientId 필요 없음)
  2. 기본 Sign-In: Apple의 기본 Sign in with Apple 버튼 및 인증 흐름 사용
  3. 신원 토큰: Apple은 사용자 정보를 포함하는 신원 토큰(JWT) 반환
  4. Supabase 인증: 신원 토큰은 signInWithIdToken()을 사용하여 Supabase로 전송됨

도우미 함수는 iOS 플랫폼을 자동으로 감지하고 모든 것을 적절하게 구성합니다.

  • iOS는 Apple Sign-In을 위해 앱의 번들 ID를 자동으로 사용합니다
  • 번들 ID가 Apple Developer Portal에 구성된 것과 일치하는지 확인하세요
  • 번들 ID에는 “Sign in with Apple” 기능이 활성화되어야 합니다

Supabase에서 Apple 제공자를 다음과 같이 구성합니다:

  • Client ID: iOS 앱 ID(번들 ID) - 예: app.capgo.plugin.SocialLogin

Android/Web도 사용하는 경우 Supabase의 Client ID 필드에서 앱 ID와 서비스 ID를 모두 제공해야 합니다(쉼표로 구분).

인증이 실패하면:

  • 번들 ID 불일치: 번들 ID가 Xcode와 Apple Developer Portal에서 일치하는지 확인하세요
  • 기능 활성화 안 됨: Xcode에서 “Sign in with Apple” 기능이 활성화되었는지 확인하세요
  • Supabase 구성: 앱 ID가 Supabase Apple 제공자 설정에서 올바르게 구성되었는지 확인하세요
  • 토큰 검증 실패: Apple에서 신원 토큰이 수신되고 있는지 확인하세요
  • 예제 앱 코드를 참조하세요