Supabase Google iOS
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 명령어를 복사하세요.
이 가이드는 iOS에서 Google Sign-In을 Supabase 인증과 통합하는 방법을 알려줍니다. 이미 다음을 완료했다고 가정합니다:
- the 구글 로그인 iOS 설정
- the Supabase Google 로그인 - 일반 설정.
Implementation
구글 로그인 iOS 설정구글 로그인 iOS 설정의 완전한 implementation은 예제 앱의 파일에 있습니다. 이 안내서에서는 주요 개념과 사용 방법을 설명합니다. supabaseAuthUtils.ts 인증 도우미 사용
구글 로그인 iOS 설정
구글 로그인 iOS 설정The 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 토큰 캐싱 및 넌스 문제iOS 넌스 캐싱 문제
iOS에서 Google Sign-In은 토큰을 캐싱할 수 있습니다. 이는 넌스 검증을 실패할 수 있습니다. validateJWTToken iOS Google Sign-In __CAPGO_KEEP_0__
- 자동 감지: 토큰 내의 nonce가 기대되는 nonce와 일치하는지 확인합니다.
nonceDigest - 자동 재시도: 유효성 검사 실패 시 Google에서 로그아웃하고 다시 시도합니다.
- 오류 처리: 재시도도 실패하면 오류가 반환됩니다.
이러한 현상이 발생하는 이유: iOS Google Sign-In SDK는 성능을 위해 토큰을 캐싱합니다. 캐시된 토큰이 반환될 때, 캐시된 토큰이 다른 nonce (또는 nonce가 없는 경우)로 생성된 경우 nonce가 일치하지 않게 됩니다.
해결 방법: 로그아웃하고 다시 시도함으로써 Google이 올바른 nonce와 함께 새로운 토큰을 생성하도록 강제하여 자동으로 처리합니다.
수동 대안 (자동 재시도가 작동하지 않으면):
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();이것은 올바른 nonce와 함께 새로운 토큰을 얻는 것을 보장합니다.
완전한 code 참조를 보려면 일반 설정 가이드의 "Code 참조" 섹션을 참조하십시오..
중요한 주의 사항
제목이 "중요한 주의 사항"인 섹션Nonce 처리
제목이 "Nonce 처리"인 섹션Nonce 구현은 React Native Google Sign In 문서에서 패턴을 따릅니다. Supabase로 이동:
rawNonceSupabase로 이동signInWithIdToken()- Supabase는 Google Sign-In의 ID 토큰에서 SHA-256 해시를 생성합니다.
rawNonce그것은 Google Sign-In의 ID 토큰에서 SHA-256 해시와 비교합니다.nonceDigestGoogle Sign-In의 ID 토큰에서 SHA-256 해시가 포함되어 있습니다. nonceDigestSHA-256 해시 (16진수 인코딩)는 Google Sign-In API의nonceparameter로 이동합니다.
Google Sign-In API의
자동 다시 시도 메커니즘The authenticateWithGoogleSupabase 자동 다시 시도 메커니즘 retry The
- 함수는 다음 매개 변수를 포함합니다.
retry=false): 인증 실패 시 자동 로그아웃 후 재시도 - 재시도 호출 (
retry=true): 유효성 검사 실패 시 즉시 오류를 반환합니다.
iOS 토큰 캐싱 문제를 자동으로 처리합니다.
문제 해결
contextPage/area: Support / premium support page or footer support section. Role: Section or page heading. Seen in: page support-policy.astro. Message key `support_policy_troubleshooting_title` (Support Policy Troubleshooting Title).
- 제목: 문제 해결If authentication fails:
- Nonce mismatch: 함수가 자동으로 재시도합니다 - 자세한 내용은 콘솔 로그를 확인하세요. 만약 지속되면 수동 로그아웃을 먼저 해주세요
- Invalid audience: Google Cloud Console과 Supabase(모바일 및 웹 클라이언트 ID 모두)에서 Google Client ID를 확인하세요
mode: 'online'초기화 호출에서 idToken을 얻기 위해 - Info.plist 구성: Info.plist에 올바른 URL 스키마와 GIDClientID가 있는지 확인하십시오
- 리뷰 예시 앱 code 참조
iOS에서 Supabase Google Login을 계속 진행하세요
iOS에서 Supabase Google Login을 계속 진행하세요인증 및 계정 흐름을 계획하고 Supabase Google Login on iOS를 사용하는 경우 Supabase Google Login on iOS를 사용하여 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 연결하세요 Info.plist 구성 @capgo/capacitor-소셜 로그인 사용 Capgo의 Native 기능을 사용하기 위해 @capgo/capacitor-social-login @capgo/capacitor-social-login Capgo의 구현 세부 정보를 위해 @capgo/capacitor-social-login @capgo/capacitor-passkey Capgo의 구현 세부 정보를 위해 @capgo/capacitor-passkey @capgo/capacitor-native-biometric Capgo의 구현 세부 정보를 위해 @capgo/capacitor-native-biometric, 그리고 두 단계 인증 두 단계 인증의 구현 세부 정보를 위해