Supabase Google Android에 로그인
이 가이드는 Android에서 Supabase 인증과 Google 로그인을 통합하는 데 도움이 됩니다. 이미 다음 작업을 완료했다고 가정합니다.
전체 구현은 예제 앱의 supabaseAuthUtils.ts 파일에서 확인할 수 있습니다. 이 가이드에서는 주요 개념과 사용 방법을 설명합니다.
인증 도우미 사용
Section titled “인증 도우미 사용”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 로그인을 포함하여 인증 흐름이 작동하는 방식에 대한 자세한 설명은 일반 설정 가이드의 작동 방식 섹션을 참조하세요.
전체 코드 참조는 일반 설정 가이드의 전체 코드 참조 섹션을 참조하세요.
중요 참고사항
Section titled “중요 참고사항”Nonce 처리
Section titled “Nonce 처리”nonce 구현은 React Native Google 로그인 문서의 패턴을 따릅니다.
rawNonce은(는) Supabase의signInWithIdToken()(으)로 이동합니다.- Supabase는
rawNonce의 해시를 만들고 이를 Google의 ID 토큰에 포함된nonceDigest와 비교합니다. nonceDigest(SHA-256 해시, 16진수 인코딩)는 Google 로그인 API의nonce매개변수로 이동합니다.
자동 재시도
Section titled “자동 재시도”구현에는 자동 재시도 논리가 포함됩니다.
- JWT 첫 번째 시도에서 유효성 검사에 실패하면 로그아웃하고 한 번 재시도합니다.
- 캐시된 토큰에 잘못된 nonce가 있을 수 있는 경우를 처리합니다.
- 재시도에도 실패하면 오류가 반환됩니다.
인증이 실패하는 경우:
- 잘못된 대상: Google 클라이언트 ID가 Google Cloud Console과 Supabase 모두에서 일치하는지 확인하세요.
- Nonce 불일치: 콘솔 로그를 확인하세요. 기능이 자동으로 재시도되지만 필요한 경우 먼저 수동으로 로그아웃할 수 있습니다.
- 토큰 유효성 검사 실패: idToken을 가져오기 위한 초기화 호출에서
mode: 'online'을 사용하고 있는지 확인하세요. - 참고용으로 예제 앱 코드를 검토하세요.