Supabase Apple 로그인 Android
이 플러그인의 설치 단계와 전체 마크다운 가이드를 포함하여 __CAPGO_KEEP_0__를 복사할 수 있습니다.
설치 전 필요 조건
설치 전 필요 조건이 안내서에서는 Android에서 Apple Sign-In을 Supabase 인증과 통합하는 방법을 설명합니다. 이 안내서를 사용하기 전에 다음을 완료한 것으로 가정합니다.
Step 1: 백엔드 Edge Function을 배포하세요
Step 1: 백엔드 Edge Function을 배포하세요라는 제목첫 번째로, Apple OAuth 콜백을 처리할 Supabase Edge Function을 배포해야 합니다.
-
Supabase 프로젝트 디렉토리로 이동하세요
터미널 창 cd your-project/supabase -
__CAPGO_KEEP_0__를 생성하세요. (있지 않으면) __CAPGO_KEEP_0__를 생성하세요.
터미널 창 supabase functions new apple-signin-callback -
code를 복사하세요.
__CAPGO_KEEP_0__의 완전한 구현은 예제 앱에서 확인할 수 있습니다. 예제 앱.
다음 파일을 프로젝트로 복사하세요.
supabase/functions/apple-signin-callback/index.ts- 메인 에지 함수 codesupabase/functions/apple-signin-callback/deno.json- 의존성 라이브러리의 임포트 맵 (JWT 서명 라이브러리 포함)joseJWT 인증을 위한 설정
-
Configure JWT verification
Apple OAuth callback endpoint는 공개되어야 합니다 (인증이 필요하지 않습니다). Apple은 이를 호출합니다. Apple OAuth callback endpoint를 업데이트하여
supabase/config.tomlfile:[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찾을 수 없다면 다음을 수행할 수 있습니다:
- 열기
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Apple Sign-In Callback
apple-signin-callback함수 URL을 클릭하여 복사하세요.
- 열기
2단계: 애플 개발자 포털 구성
-
Apple Login Android 설정 가이드를 따라하세요.
Apple Login Android 설정 가이드를 완료하세요. 으로: 서비스 ID를 생성하세요.
- .p8 파일 형식의 개인 키를 생성하세요.
- 팀 ID와 키 ID를 확인하세요.
- Return URL을 설정하세요.
- Apple Developer Portal에서 Return URL을 설정하세요.
-
Return URL을 Apple Developer Portal에 설정하세요.
Apple Developer Portal에서 Return URL을 설정할 때 (Apple 가이드의 6.9 단계), Supabase Edge Function URL을 사용하세요.
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback주의: Supabase Edge Function URL을 사용하세요.
사용하지 마세요. Apple Login Android Setup 가이드에서 제공하는 리다이렉트 URL을 사용하지 마세요. . 그 가이드는 커스텀 백엔드 서버 URL을 사용합니다. Supabase 통합을 위해,반드시 Supabase Edge Function URL을 사용해야 합니다. 정확한 일치 필요
-
Apple 설정 가이드를 완료한 후, 다음을 갖추어야 합니다:
APPLE_TEAM_ID
- : Apple 개발자 팀 IDAPPLE_KEY_ID
- : Apple 개발자 포털에서 Key IDAPPLE_PRIVATE_KEY
- : .p8 개인 키 파일 (base64 인코딩이 필요합니다)ANDROID_SERVICE_ID
- : Apple 서비스 ID (예를 들어,__CAPGO_KEEP_0__
com.example.app.service) - BASE_REDIRECT_URL: Your deep link URL (e.g.,
capgo-demo-app://path)
then your deep link will be
Step 3: Supabase Edge Function의 비밀을 설정하십시오Supabase Edge Function의 환경 변수(비밀)를 설정해야 합니다.
-
개인 키를 base64로 인코딩하십시오
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 -
__CAPGO_KEEP_0__ 대신 Supabase 대시보드에서 비밀을 설정하세요.
__CAPGO_KEEP_0__을 사용하는 경우:
- __CAPGO_KEEP_0__로 이동하세요.
- __CAPGO_KEEP_0__으로 이동하세요. __CAPGO_KEEP_0__ → __CAPGO_KEEP_0__ → __CAPGO_KEEP_0__
- __CAPGO_KEEP_0__ 변수를 각 비밀 값과 함께 추가하세요.
Step 4: 인증 도우미 사용
이제 앱에서 인증 도우미를 사용할 수 있습니다 __CAPGO_KEEP_0__.Now you can use the authentication helper in your app code.
Implementation
ImplementationThe complete implementation is available in the __CAPGO_KEEP_0__ example app의 supabaseAuthUtils.ts 파일.
인증 Helper를 사용하는 방법
제목: 인증 Helper를 사용하는 방법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);}Helper 함수를 업데이트합니다.
제목: Helper 함수를 업데이트합니다.helper 함수를 사용할 때, authenticateWithAppleSupabase 당신은 아래의 값을 당신의 설정과 일치시켜야 합니다: __CAPGO_KEEP_1__
-
업데이트
redirectUrl- Supabase Edge Function URL로 설정하세요:const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
업데이트
clientId- 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,},});
__CAPGO_KEEP_1__ 완전한 구현 참조용입니다.
5단계: 통합 테스트
5단계: 통합 테스트 섹션 제목-
Android 앱을 빌드하고 실행하세요.
터미널 창 npx cap sync androidnpx cap run android -
인증 흐름을 테스트하세요.
- 애플 로그인 버튼을 탭하세요.
- 브라우저에서 애플 OAuth 페이지를 볼 수 있습니다.
- 인증 후 앱으로 돌아옵니다.
- 콘솔 로그에서 오류를 확인하세요.
-
__CAPGO_KEEP_0__을 확인하세요.
__CAPGO_KEEP_0__의 완전한 흐름은 다음과 같습니다.
- 사용자가 '애플로 로그인' 버튼을 탭합니다.
- 애플 로그인 브라우저가 열립니다.
- 사용자가 애플 계정으로 인증합니다.
- 애플에서 리다이렉트됩니다.
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - Edge 함수가 code을 토큰으로 교환합니다.
- Edge 함수가 리다이렉트됩니다.
your-app://path?id_token=...&access_token=... - 안드로이드 앱이 깊이 링크를 수신하고 사용자 식별 토큰을 처리합니다.
- 앱이 사용자 식별 토큰으로 Supabase에 로그인합니다.
문제 해결
'문제 해결' 섹션인증이 실패할 경우:
- Redirect URI 일치하지 않음: Apple Developer Portal의 Return URL이 정확히 일치하는지 확인하세요.
APPLE_REDIRECT_URI비밀번호 - 깊이 연결이 작동하지 않음: 다음을 확인하세요.
AndroidManifest.xmlintent 필터가BASE_REDIRECT_URL - 비밀번호가 누락됨: 다음을 확인하세요.
supabase secrets list - 모든 비밀번호가 올바르게 설정되었는지 토큰 교환 실패
- : Supabase Dashboard의 Edge Function 로그를 확인하여 자세한 오류 메시지를 확인하세요. : __CAPGO_KEEP_0__을 확인하세요.
onNewIntentis properly implemented in MainActivity - Review the example app code for reference
How It Works
Section titled “How It Works”On Android, Apple Sign-In uses an OAuth redirect flow:
- Initialization: Plugin은 Service ID와 백엔드 리다이렉트 URL로 초기화됩니다.
- OAuth Flow: Apple의 OAuth 페이지를 열어 Chrome Custom Tab 또는 브라우저를 엽니다.
- Backend Callback애플이 사용자 인증을 위해 Edge 함수로 리다이렉트합니다. code
- 토큰 교환애플의 토큰 엔드포인트를 사용하여 code를 토큰으로 교환합니다.
- 깊이 연결 리다이렉트Edge 함수가 사용자 인증 토큰을 포함한 앱으로 리다이렉트합니다.
- Supabase 인증앱이 토큰을 수신하고 Supabase에 로그인합니다.
이 흐름은 애플이 Sign in with Apple을 위한 네이티브 안드로이드 지원을 제공하지 않기 때문에 필요합니다.
Supabase 애플 로그인에서 계속
Supabase 애플 로그인에서 계속애플 로그인 사용 중입니다. Apple Android 로그인 인증 및 계정 흐름을 계획하고 연결하세요. @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의 구현 세부 정보를 사용하여 두 가지 인증 방법을 사용합니다. 두 단계 인증 두 단계 인증의 구현 세부 정보를 사용하여