Supabase Google 로그인 on Web
설치
소개
소개이 가이드는 Google Sign-In을 Supabase 인증에 통합하는 데 도움이 됩니다. 웹에서. 이미 완료한 것으로 가정하고 있습니다:
Implementation
Implementation구현은 예제 앱의 예제 앱의 supabaseAuthUtils.ts 파일. 이 안내서에서는 주요 개념과 사용 방법을 설명합니다.
인증 도우미 사용
인증 도우미 사용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);}중요: 리다이렉트 처리
중요: 리다이렉트 처리웹에서 Google 로그인 사용할 때,
반드시 리다이렉트가 발생할 때 플러그인에서 함수를 호출하여 플러그인을 초기화하여 리다이렉트를 처리하고 팝업 창을 닫아야 합니다. 플러그인에서 함수를 호출할 수 있는 방법은 두 가지가 있습니다. file. 이 안내서에서는 주요 개념과 사용 방법을 설명합니다. isLoggedIn() 또는 initialize() - 두 가지 모두 리다이렉트 처리를 트리거합니다.
OAuth 팝업 흐름이 올바르게 작동하기 위해 필수입니다.
Implementation Example
Implementation Example 섹션Google Sign-In을 처리하는 컴포넌트에 이 코드를 추가하세요:
import { useEffect } from 'react';import { SocialLogin } from '@capgo/capacitor-social-login';
function SupabasePage() { // Check Google login status on mount to invoke redirect handling // This doesn't serve any functional purpose in the UI but ensures // that any pending OAuth redirects are properly processed useEffect(() => { const checkGoogleLoginStatus = async () => { try { await SocialLogin.isLoggedIn({ provider: 'google' }); // We don't use the result, this is just to trigger redirect handling } catch (error) { // Ignore errors - this is just for redirect handling console.log('Google login status check completed (redirect handling)'); } };
checkGoogleLoginStatus(); }, []);
// ... rest of your component}다음과 같이 SupabasePage.tsx 를 참조하세요.
인증 흐름이 작동하는 방법에 대한 자세한 설명을 원한다면, 비회원 인증, JWT 검증, Supabase 로그인 포함하여 General Setup 가이드의 .
For the complete code reference, see the Complete Code Reference section in the General Setup guide.
또한
- SupabasePage.tsx - 리다이렉트 처리를 포함한 예제 컴포넌트
- SupabaseCreateAccountPage.tsx - 예제 계정 생성 페이지
중요한 주의 사항
중요한 주의 사항리다이렉트 처리
Redirect Handling웹에서 Google 로그인 사용 시 반드시 redirect가 발생할 때 플러그인에서 함수를 호출하여 플러그인을 초기화하여 redirect를 처리하고 팝업 창을 닫아야 합니다. EITHER 또는 BOTH를 호출할 수 있습니다. - 두 가지 모두 redirect 처리를 트리거합니다. isLoggedIn() 이것은 OAuth 팝업 흐름이 올바르게 작동하기 위해 필수입니다. 인증 후 팝업 창이 닫히지 않습니다. initialize() Nonce Handling
Nonce 처리
Nonce 구현은 React Native Google Sign In 문서에서 따릅니다.
Supabase로 이동합니다.goes to Supabase’s goes to Supabase’s:
rawNoncegoes to Supabase’ssignInWithIdToken()- Supabase는 Google Sign-In의 ID 토큰에서 SHA-256 해시를 생성하고
rawNonce그것을 Google Sign-In API의nonceDigestparameter와 비교합니다. nonceDigestGoogle Sign-In API의nonce자동 재시도
JWT 검증이 첫 번째 시도에서 실패하면 로그아웃하고 다시 시도합니다.
- 이것은 캐시된 토큰이 잘못된 nonce를 가지고 있는 경우를 처리합니다.
- 재시도도 실패하면 오류가 반환됩니다.
- 문제 해결
인증이 실패하는 경우:
- Redirect가 작동하지 않는다: 컴포넌트가 마운트 될 때 호출하십시오 (위의 예시 참조)
isLoggedIn()Invalid audience - : Google Cloud Console 및 Supabase에서 Google Client ID가 일치하는지 확인하십시오Authorized redirect URLs
- : Google Cloud Console 및 Supabase에서 허용된 리다이렉트 URL이 설정되어 있는지 확인하십시오Nonce mismatch
- : 콘솔 로그를 확인하십시오 - 함수는 자동으로 다시 시도하지만 필요할 때 수동으로 로그아웃하십시오Token validation fails
- protectedTokens: 사용자가 올바르게 설정되어 있는지 확인하세요.
mode: 'online'in initialize 함수 호출에서 idToken을 얻기 위해 - 리뷰하기 예시 앱 code 참조
Supabase Google Login on Web에서 계속하기
제목 ‘Supabase Google Login on Web에서 계속하기’Supabase Google Login on Web을 사용하는 경우 인증 및 계정 흐름을 계획하고 Supabase Google Login on Web을 연결하려면 Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 사용하여 Using @capgo/capacitor-social-login의 Native Capability을 사용하여 for the native capability in Using @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 구현에 대한 세부 정보, 그리고 두 단계 인증 Capgo에서 두 단계 인증 구현에 대한 세부 정보