본문 바로가기

iOS에서 Supabase Apple Login 설정

GitHub

이 가이드는 iOS에서 Supabase Authentication에 Apple Sign-In을 연동하는 방법을 안내합니다. 다음 단계는 이미 완료했다고 가정합니다:

구현 방법

“구현” 섹션

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

Authentication Helper 사용하기

“Authentication Helper 사용” 섹션

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

import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();
if (result.success) {
console.log('Signed in:', result.user);
// Navigate to your authenticated area
} else {
console.error('Error:', result.error);
}

iOS에서 Apple Sign-In은 다음과 같은 native 구현 방식을 사용합니다:

  1. 초기화: 이 plugin은 앱의 bundle ID를 자동으로 사용합니다 (별도의 clientId 필요 시)
  2. 네이티브 로그인: Apple의 native Sign in with Apple 버튼과 인증 흐름을 사용합니다.
  3. Identity Token: Apple은 사용자 정보가 담긴 identity token(JWT)을 반환합니다.
  4. Supabase 인증: identity token은 다음을 통해 Supabase로 전송됩니다. signInWithIdToken()

helper function이 iOS 플랫폼을 자동으로 감지하고 모든 설정을 알맞게 구성합니다.

  • iOS는 Apple Sign-In 시 앱의 bundle ID를 자동으로 사용합니다
  • bundle ID가 Apple Developer Portal에 설정된 값과 일치하는지 확인하세요
  • bundle ID에 “Sign in with Apple” 기능이 활성화되어 있어야 합니다

Supabase에서 Apple provider를 다음과 같이 설정하세요:

  • 클라이언트 ID: iOS App ID (bundle ID) - 예: app.capgo.plugin.SocialLogin

Android/Web도 함께 사용하는 경우, Supabase의 Client ID 필드에 App ID와 Service ID를 모두 입력해야 합니다 (쉼표로 구분).

인증에 실패하는 경우:

  • Bundle ID 불일치: Xcode와 Apple Developer Portal의 bundle ID가 일치하는지 확인하세요
  • Capability가 활성화되지 않음: Xcode에서 “Sign in with Apple” capability가 활성화되어 있는지 확인하세요
  • Supabase 설정: Supabase Apple provider 설정에 App ID가 올바르게 구성되었는지 확인하세요
  • Token 검증 실패: Apple로부터 identity token을 정상적으로 받고 있는지 확인하세요
  • 다음을 참고하세요: 예제 앱 code 참고용

iOS 설정에서 Supabase Apple Login 계속하기

“iOS에서 Supabase Apple Login 설정 계속하기” 섹션

사용 중이라면 iOS에서 Supabase Apple 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단계 인증의 구현 세부 사항에 대해서는