본문 바로가기

Android에서 Supabase Google Login

GitHub

소개

소개

이 가이드는 Android에서 Supabase Authentication에 Google Sign-In을 통합하는 방법을 안내합니다. 다음 단계가 이미 완료되었다고 가정합니다:

구현 방법

구현

전체 구현 코드는 다음에서 확인할 수 있습니다: 예제 앱의 supabaseAuthUtils.ts 파일입니다. 이 가이드에서는 주요 개념과 사용 방법을 설명합니다.

Authentication Helper 사용하기

“Authentication Helper 사용하기” 섹션

이 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);
}

nonce 생성, JWT 검증, Supabase 로그인 등 인증 흐름의 상세한 작동 원리는 General Setup 가이드의 How It Works 섹션을 참조하세요.

code 전체 레퍼런스는 다음을 참조하세요 General Setup 가이드의 Code Reference 섹션을 완료하세요.

nonce 구현 방식은 다음 패턴을 따릅니다: React Native Google Sign In 문서:

  • rawNonce Supabase로 전달됩니다 signInWithIdToken()
  • Supabase는 다음 값을 해싱합니다: rawNonce 및 이를 다음 값과 비교합니다: nonceDigest Google Sign-In의 ID token에 포함된
  • nonceDigest (SHA-256 해시, hex-encoded)가 nonce Google Sign-In API의 파라미터

구현 내용에는 다음과 같은 자동 재시도 로직이 포함됩니다:

  • 첫 번째 JWT 검증에 실패하면, 로그아웃 후 한 번 더 재시도합니다
  • 이는 캐시된 토큰의 nonce 값이 잘못되었을 경우를 처리합니다
  • 재시도마저 실패하면 에러를 반환합니다

인증에 실패하는 경우:

  • 잘못된 audience 값입니다: Google Cloud Console과 Supabase의 Google Client ID가 일치하는지 확인하세요
  • Nonce 불일치: 콘솔 로그를 확인하세요. 함수가 자동으로 재시도하지만, 필요한 경우 수동으로 로그아웃한 뒤 다시 시도할 수 있습니다.
  • 토큰 검증 실패: 다음을 사용 중인지 확인하세요: mode: 'online' idToken을 가져오기 위한 initialize 호출 시
  • 다음 내용을 참고하세요: 예제 앱 code 참조용

Android에서 Supabase Google Login 계속 진행하기

“Keep going from Supabase Google Login on Android” 섹션

사용 중이라면 Android에서 Supabase Google Login 인증 및 계정 흐름을 설계할 때, 이를 다음 항목과 연결하세요: @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의 구현 세부 사항 및 2단계 인증 2단계 인증의 구현 세부 사항에 대해서는