__CAPGO_KEEP_0__

iOS에서 Supabase Google 로그인

GitHub

이 가이드는 iOS에서 Google Sign-In을 Supabase Authentication과 통합하는 데 도움이 될 것입니다. 이미 완료한 것으로 가정합니다.

__CAPGO_KEEP_0__의 완전한 구현은 __CAPGO_KEEP_0__의 __CAPGO_KEEP_1__ 파일에 있습니다. 이 안내서에서는 주요 개념과 사용 방법을 설명합니다. 인증 도우미 사용 supabaseAuthUtils.ts 인증

__CAPGO_KEEP_0__

복사

작동 방식 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);
}

Section titled “Using the Authentication Helper”

Section titled “Implementation”

세부 설명을 위해 인증 흐름이 어떻게 작동하는지, nonce 생성, JWT 검증 및 Supabase 로그인에 대한 자세한 설명은 General Setup 가이드의 "How It Works" 섹션을 참조하십시오. iOS Token Caching and Nonce Issues.

중요한 주의 사항

중요한 주의 사항

iOS Token Caching and Nonce Issues

iOS Nonce Caching Issue

iOS에서 Google Sign-In은 토큰을 캐시할 수 있습니다. 이는 nonce 검증이 실패할 수 있는 원인이 됩니다.

자동 감지 validateJWTToken 자동 감지 : 함수는 토큰에 포함된 nonce가 예상되는 nonce와 일치하는지 확인합니다.

  1. 자동 재시도iOS Token Caching and Nonce Issues nonceDigest
  2. 중요한 주의 사항: Google 인증이 실패하면 자동으로 Google에서 로그아웃하고 다시 시도합니다.
  3. 오류 처리: 다시 시도도 실패하면 오류가 반환됩니다.

왜 이런 일이 발생하는가: iOS Google Sign-In SDK는 성능을 위해 토큰을 캐싱합니다. 캐시된 토큰이 반환될 때, 캐시된 토큰이 다른 nonce (또는 nonce이 없는 경우)로 생성된 경우 일치하지 않을 수 있습니다.

해결 방법: implementation은 로그아웃하고 다시 시도함으로써 Google이 올바른 nonce와 함께 새로운 토큰을 생성하도록 강제합니다.

수동 대안 (자동 다시 시도가 작동하지 않으면):

// Logout first to clear cached tokens
await SocialLogin.logout({ provider: 'google' });
// Then authenticate
const result = await authenticateWithGoogleSupabase();

이것은 올바른 nonce와 함께 새로운 토큰을 얻는 것을 보장합니다.

code의 전체 참조를 보려면 일반 설정 안내서의 Code 참조 섹션을 완료하세요..

중요한 주의 사항

중요한 주의 사항

Nonce 처리

Nonce 처리

Nonce 구현은 React Native Google Sign In 문서에서 설명하는 패턴을 따릅니다. Supabase로 이동:

  • rawNonce Supabase는 __CAPGO_KEEP_0__을 해시화합니다. signInWithIdToken()
  • 해시화된 __CAPGO_KEEP_0__과 Google Sign-In에서 제공하는 ID 토큰의 __CAPGO_KEEP_1__을 비교합니다. rawNonce (SHA-256 해시, 16진수 인코딩) Supabase로 이동 nonceDigest (SHA-256 해시, 16진수 인코딩)가 포함된 ID 토큰과 비교합니다.
  • nonceDigest (SHA-256 해시, 16진수 인코딩)가 포함된 ID 토큰과 비교합니다. nonce __CAPGO_KEEP_0__ parameter in Google Sign-In APIs

__CAPGO_KEEP_0__ 자동 재시도 기구

__CAPGO_KEEP_0__ 자동 재시도 기구

__CAPGO_KEEP_1__ authenticateWithGoogleSupabase __CAPGO_KEEP_0__ 함수에는 retry __CAPGO_KEEP_0__ 매개 변수:

  • __CAPGO_KEEP_0__ 첫 번째 호출 (retry=false ): 유효성 검사 실패 시 자동 로그아웃하고 다시 시도합니다.
  • __CAPGO_KEEP_0__ 재시도 호출 (retry=true ): 유효성 검사 실패 시 즉시 오류를 반환합니다.

__CAPGO_KEEP_1__ iOS 토큰 캐싱 문제를 자동으로 처리합니다.

__CAPGO_KEEP_0__ 문제 해결

문제 해결

인증이 실패하면:

  • Nonce 일치하지 않음: 자동으로 재시도합니다. 콘솔 로그를 확인하여 자세한 내용을 확인하세요. 만약 지속된다면, 수동으로 로그아웃하세요
  • 유효한 청중: Google 클라이언트 ID가 Google Cloud Console과 Supabase (iOS 및 Web 클라이언트 ID 모두) 에서 일치하는지 확인하세요
  • 토큰 유효성 검사 실패: initialize 함수에 idToken을 가져오기 위해 사용하는 mode: 'online' Info.plist 구성
  • : Info.plist에 올바른 URL 스키마와 GIDClientID가 있는지 확인하세요리뷰
  • Review the 예제 앱 code 참조

iOS에서 Supabase Google Login에서 계속하기

iOS에서 Supabase Google Login에서 계속하기 섹션

이미 사용 중인 경우 iOS에서 Supabase Google Login 인증 및 계정 흐름을 계획하고 연결하려면 @capgo/capacitor-social-login을 사용하여 Using @capgo/capacitor-social-login의 네이티브 기능을 위해 @capgo/capacitor-social-login Using @capgo/capacitor-social-login의 구현 세부 정보를 위해 @capgo/capacitor-passkey implementation 세부 정보에 대한 @capgo/capacitor-passkey @capgo/capacitor-native-biometric implementation 세부 정보에 대한 @capgo/capacitor-native-biometric, 및 두 단계 인증 implementation 세부 정보에 대한 두 단계 인증.