iOS에 대한 Supabase Google 로그인
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 명령어를 복사하세요.
이 가이드는 iOS에서 Google Sign-In을 Supabase 인증과 통합하는 데 도움이 될 것입니다. 이미 다음을 완료한 것으로 가정합니다:
- __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
- __CAPGO_KEEP_2__ __CAPGO_KEEP_3__.
__CAPGO_KEEP_4__
__CAPGO_KEEP_5____CAPGO_KEEP_6__ __CAPGO_KEEP_7__ supabaseAuthUtils.ts __CAPGO_KEEP_8__
__CAPGO_KEEP_9__
__CAPGO_KEEP_10____CAPGO_KEEP_11__ authenticateWithGoogleSupabase 함수는 전체 인증 흐름을 처리합니다.:
import { authenticateWithGoogleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithGoogleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}중요한 주의 사항 iOS 토큰 캐싱 및 nonce 문제.
__CAPGO_KEEP_0__
__CAPGO_KEEP_0____CAPGO_KEEP_0__
__CAPGO_KEEP_0__ validateJWTToken iOS에서 Google Sign-In __CAPGO_KEEP_0__은 성능을 위해 토큰을 캐싱합니다. 캐시된 토큰이 반환될 때, 토큰이 다른 nonce (또는 nonce가 없는 경우)로 생성되었을 수 있으므로 일치하지 않을 수 있습니다.
- 자동 감지: 토큰에 포함된 nonce가 예상되는 nonce와 일치하는지 확인합니다.
nonceDigest - 자동 재시도: 유효성 검사 실패 시 Google에서 로그아웃하고 다시 시도합니다.
- 오류 처리: 재시도도 실패하면 오류를 반환합니다.
이것이 왜 발생하는지: iOS에서 Google Sign-In SDK은 성능을 위해 토큰을 캐싱합니다. 캐시된 토큰이 반환될 때, 토큰이 다른 nonce (또는 nonce가 없는 경우)로 생성되었을 수 있으므로 일치하지 않을 수 있습니다.
해결책: 로그아웃하고 다시 시도함으로써 Google이 새로운 토큰을 생성하도록 강제하여 올바른 nonce와 일치하는 토큰을 생성합니다.
수동 대안 (자동 재시도가 작동하지 않으면):
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();이것은 올바른 nonce와 함께 새로운 토큰이 얻어지는 것을 보장합니다.
완전한 code 참조를 보려면 General Setup 가이드의 "Complete code Reference" 섹션을 참조하세요. Complete Code Reference section in the General Setup guide.
제목 "중요한 주의사항"
Nonce 처리제목 "Nonce 처리"
Nonce 구현은 React Native Google Sign In 문서의 패턴을 따릅니다.Supabase로 이동 __CAPGO_KEEP_0__:
rawNonce__CAPGO_KEEP_0__signInWithIdToken()- Supabase는 해시를 생성하고
rawNonce그것을 Google Sign-In의 ID 토큰과 비교합니다.nonceDigestGoogle Sign-In의 ID 토큰에서 SHA-256 해시를 생성하고 16진수로 인코딩한 것은 nonceDigestGoogle Sign-In API의 파라미터로 전송됩니다.nonce자동 재시도 메커니즘
자동 재시도 메커니즘
자동 재시도 메커니즘함수는 authenticateWithGoogleSupabase 자동 재시도 메커니즘 retry 첫 번째 호출 (
- ): 유효성 검사 실패 시 자동 로그아웃하고 다시 한번 시도합니다.
retry=false첫 번째 호출 (__CAPGO_KEEP_0__) - 재시도 호출 (
retry=true): 유효성 검사 실패 시 즉시 오류를 반환합니다.
이것은 iOS 토큰 캐싱 문제를 자동으로 처리합니다.
문제 해결
제목이 '문제 해결'인 섹션인증이 실패한 경우:
- Nonce 일치하지 않음: 함수가 자동으로 재시도합니다 - 자세한 내용은 콘솔 로그를 확인하세요. 만약 지속되면 수동 로그아웃을 먼저 하세요.
- 유효한 청중: Google 클라이언트 ID가 Google Cloud Console과 Supabase(모바일 및 웹 클라이언트 ID 모두)에서 일치하는지 확인하세요.
- 토큰 유효성 검사 실패: Supabase에서 사용하는 Google 클라이언트 ID가 iOS 및 Web 앱 모두에서 일치하는지 확인하세요.
mode: 'online'iOS에서 초기화 호출을 통해 idToken을 얻으세요 - Info.plist 구성: Info.plist에 올바른 URL schemes 및 GIDClientID가 있는지 확인하세요
- 참조용으로 예제 앱 __CAPGO_KEEP_0__ example app code iOS에서 Supabase Google Login을 사용하는 경우
인증 및 계정 흐름을 계획하고 연결하려면
@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 사용하세요iOS에서 Supabase Google Login을 사용하는 경우 인증 및 계정 흐름을 계획하고 연결하려면 Supabase Google Login을 사용하세요 iOS에서 Supabase Google Login을 사용하는 경우 Supabase Google Login을 사용하여 인증 및 계정 흐름을 계획하고 연결하세요 iOS에서 Supabase Google Login을 사용하는 경우 Supabase Google Login을 사용하여 인증 및 계정 흐름을 계획하고 연결하세요 Using @capgo/capacitor-social-login native 기능을 사용하는 @capgo/capacitor-social-login을 위해 @capgo/capacitor-social-login native 기능 구현 세부 사항을 위한 @capgo/capacitor-social-login @capgo/capacitor-passkey 구현 세부 사항을 위한 @capgo/capacitor-passkey native 기능 구현 세부 사항을 위한 @capgo/capacitor-native-biometric 구현 세부 사항을 위한 @capgo/capacitor-native-biometric, 그리고 두 단계 인증 구현 세부 사항을 위한 두 단계 인증