Skip to content

Supabase Google 로그인 on Web

GitHub

소개

소개

이 가이드는 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.

또한

중요한 주의 사항

중요한 주의 사항

리다이렉트 처리

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:

  • rawNonce goes to Supabase’s signInWithIdToken()
  • Supabase는 Google Sign-In의 ID 토큰에서 SHA-256 해시를 생성하고 rawNonce 그것을 Google Sign-In API의 nonceDigest parameter와 비교합니다.
  • nonceDigest Google 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에서 두 단계 인증 구현에 대한 세부 정보