14일 동안 무제한 무료试用. 신용 카드가 필요하지 않습니다.
설치
기본 조건
기본 조건 섹션이 안내서에서는 Android에서 Apple Sign-In과 Supabase 인증을 통합하는 방법을 설명합니다. Apple Sign-In을 Android에서 사용하려면 이미 다음을 완료한 것으로 가정합니다:
1단계: 백엔드 에지 함수를 배포하세요
Step 1: 백엔드 Edge Function 배포context: Page/area: About Capgo 페이지. Role: UI 레이블. Seen in: page about.astro. Message key `about_how_step_label` (About How Step Label).
-
Step 1: 백엔드 Edge Function 배포 섹션입니다.
터미널 창 cd your-project/supabase -
Edge 함수를 생성하세요 (이미 존재하는 경우)
터미널 창 supabase functions new apple-signin-callback -
Edge 함수 code를 복사하세요
Edge 함수 구현은 예제 앱에서 확인할 수 있습니다 다음 파일을 프로젝트로 복사하세요:.
- Main Edge 함수 __CAPGO_KEEP_0__
supabase/functions/apple-signin-callback/index.ts- 메인 에지 함수 codesupabase/functions/apple-signin-callback/deno.json(includesjoseJWT 서명 라이브러리)
-
JWT 검증 설정
애플 OAuth callback 엔드포인트는 공개되어야 합니다 (인증이 필요하지 않습니다). 애플은 이를 호출합니다. 업데이트하여
supabase/config.toml파일:[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
함수 배포
터미널 창 supabase functions deploy apple-signin-callback -
URL을 가져오세요.
배포 후, 다음과 같은 URL을 받을 것입니다.
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback만약 찾을 수 없다면 다음을 시도해 보세요.
- Open
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - 열기
apple-signin-callback클릭하여
- Open
2단계: 애플 개발자 포털 설정
Step 2: Apple Developer Portal 설정Apple Developer Portal을 백엔드 URL과 함께 구성하고 필요한 모든 값을 얻어야 합니다.
-
Apple Login Android 설정 안내서를 따라하세요
Apple Login Android 설정 안내서를 완료하세요 으로 to:
- .p8 파일을 생성하여 개인 키를 만드세요
- 팀 ID와 키 ID를 얻으세요
- Apple Login Android 설정 안내서를 따라하세요
- 설정 URL을 구성하세요.
-
애플 개발자 포털에서 Return URL을 설정하세요.
애플 개발자 포털에서 Return URL을 구성할 때 (애플 가이드의 6.9 단계), Supabase Edge Function URL을 사용하세요:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback중요: Supabase Edge Function URL을 사용하세요.
사용하지 마세요. 애플 로그인 안드로이드 설정 가이드에서 제공하는 리다이렉트 URL을 사용하지 마세요.. 그 가이드는 커스텀 백엔드 서버 URL을 사용합니다. Supabase 통합을 위해, 반드시 Supabase Edge Function URL을 사용해야 합니다.
-
필요한 모든 값을 수집하세요.
Apple 설정 가이드를 완료한 후, 다음 값을 얻어야 합니다:
- APPLE_TEAM_ID: Apple Developer Team ID
- APPLE_KEY_ID: Apple Developer Portal에서 Key ID
- APPLE_PRIVATE_KEY: .p8 개인 키 파일 (base64 인코딩이 필요합니다.)
- 안드로이드 서비스 ID: 애플 서비스 ID (예:
com.example.app.service) - 기본 리다이렉트 URL: 인증 후 백엔드에 리다이렉트 될 URL (예:
capgo-demo-app://path)
3단계: Supabase 비밀을 설정하십시오.
3단계: Supabase 비밀 설정현재 Supabase Edge Function의 환경 변수(비밀)를 구성해야 합니다.
-
개인 키를 인코딩하십시오.
첫 번째로, Apple 개인 키 (.p8 파일)를 base64로 인코딩하십시오.
터미널 창 base64 -i AuthKey_XXXXX.p8복사할 전체 출력을 복사하십시오.
-
Supabase에서 CLI를 사용하여 비밀을 설정하십시오.
터미널 창 supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
대안: Supabase 대시보드에서 비밀번호 설정
대시보드를 사용하는 경우:
- Supabase 프로젝트 대시보드에 가세요.
- 이동 에지 함수 → 설정 → 비밀
- 각 비밀 변수에 변수 값을 추가하세요.
애플 로그인 안드로이드 설정 가이드
Step 4: 인증 도우미 사용Now you can use the authentication helper in your app code.
구현
구현구현은 예제 앱의 supabaseAuthUtils.ts file.
인증 도우미 사용
Section titled “인증 도우미 사용”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);}업데이트 도우미 함수
Section titled “업데이트 도우미 함수”helper 함수를 사용할 때 authenticateWithAppleSupabase 당신 해야 합니다. 다음 설정 값을 자신의 설정과 일치시키기 위해 업데이트하십시오:
-
업데이트
redirectUrlSet this to your Supabase Edge Function URL:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
업데이트
clientIdSet this to your Apple Service ID:await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
참조용으로 완전한 구현을 참조하세요. 참조용으로
5단계: 통합 테스트
Step 5: Integration 테스트-
5단계: 통합 테스트
Android 앱을 빌드하고 실행하세요. npx cap sync androidnpx cap run android -
클립보드에 복사
- 애플 로그인 버튼을 탭하세요
- 인증 흐름을 테스트하세요.
- 인증이 완료되면 앱으로 돌아가야 합니다.
- 콘솔 로그를 확인하여 오류가 있는지 확인하세요.
-
플로우를 확인하세요.
완료된 플로우는 다음과 같습니다.
- 사용자가 “애플로 로그인”을 탭합니다.
- 앱이 브라우저를 열어 애플 OAuth를 여는 것입니다.
- 사용자가 애플에 인증합니다.
- 애플이 리다이렉트하는 곳은:
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge 함수가 code를 토큰으로 교환합니다.
- Edge 함수가 리다이렉트하는 곳은:
your-app://path?id_token=...&access_token=... - 안드로이드 앱이 깊이 링크를 받고 사용자 식별 토큰을 처리합니다.
- 앱이 사용자 식별 토큰으로 Supabase에 로그인합니다.
문제 해결
문제 해결 섹션인증이 실패하면:
- 리다이렉션 URI 일치하지 않음: Apple 개발자 Portal의 Return URL이 정확히 일치하는지 확인하세요.
APPLE_REDIRECT_URI비밀 - 깊이 연결이 작동하지 않음:
AndroidManifest.xml인텐트 필터가BASE_REDIRECT_URL - 비밀이 누락됨:
supabase secrets list - 토큰 교환 실패: Supabase 에서 에지 함수 로그를 확인하여 자세한 오류 메시지를 확인하세요.
- 앱이 콜백을 받지 못합니다.: Ensure
onNewIntent이것이 올바르게 구현되어 있는지 확인하세요. - 리뷰 예시 앱 code 참조
How It Works 섹션
- Initialization초기화하기: 플러그인은 Service ID와 백엔드 리다이렉트 URL로 초기화됩니다.
- OAuth Flow: 애플의 OAuth 페이지에서 브라우저/Chrome Custom Tab을 열어줍니다.
- 백엔드 콜백: 애플이 Supabase Edge Function으로 인증 code를 전달합니다.
- 토큰 교환: Edge Function이 애플의 토큰 엔드포인트를 사용하여 code를 토큰으로 교환합니다.
- 디프 링크 리다이렉트: Edge Function이 앱으로 돌아가서 identity 토큰을 전달합니다.
- Supabase 인증: 앱이 토큰을 수신하고 Supabase에 로그인합니다.
애플 로그인 플러그인은 애플의 native Android 지원이 Sign in with Apple에 대해 제공되지 않기 때문에 이 흐름이 필요합니다.
애플 로그인(Supabase Apple Login)에서 계속 진행
Section titled “Android에서 Supabase Apple 로그인 계속하기”만약 당신이 사용 중이라면 Supabase Apple 로그인 on Android 인증 및 계정 흐름을 계획하고 연결하려면 @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-passkey Using @capgo/capacitor-passkey Using @capgo/capacitor-native-biometric Using @capgo/capacitor-native-biometric Using @capgo/capacitor-native-biometric 두 단계 인증 두 단계 인증 구현에 대한 구체적인 정보