Google Login 설정
이 플러그인의 설치 단계와 전체 markdown 가이드가 포함된 설정 프롬프트를 복사하세요.
소개
“소개” 섹션이 가이드에서는 Capgo Social Login으로 Google Login을 설정하는 방법을 알아봅니다. Google Login을 설정하려면 다음이 필요합니다:
- Google 계정
일반 설정
“일반 설정” 섹션이 섹션에서는 Google에서 표시되는 로그인 화면을 설정합니다.
- 다음 페이지로 이동하세요: console.cloud.google.com
- 프로젝트 선택기를 클릭하세요
- 기존 프로젝트가 없다면, 새 프로젝트를 생성하세요.
- 클릭하세요
New project
- 프로젝트 이름을 입력하고 클릭하세요
Create
- 올바른 프로젝트를 선택했는지 확인하세요
- 클릭하세요
- 설정을 시작하려면
OAuth consent screen-
검색창을 클릭하세요
-
검색어 입력
OAuth consent screen클릭하세요
-
동의 화면 설정하기
클릭하세요
create
-
- 앱 정보 입력
-
먼저,
App Information
- 다음 내용을 입력해 주세요:
App Name - 다음 항목을 입력하세요
user support email
-
귀하 할 수 있습니다 앱 로고를 추가할 수 있습니다.
-
귀하 권장 다음 설정을 완료해야 합니다:
App domain
-
귀하 필수 개발자 이메일 입력
-
클릭하세요
save and continue
- 다음 내용을 입력해 주세요:
-
- Scope 설정
-
클릭하세요
add or remove scopes
-
다음 Scope를 선택하고 클릭하세요
update
-
클릭
save and continue
-
- 테스트 사용자 추가
- 클릭하세요
add users
- Google 이메일을 입력하고 Enter를 누른 뒤, 클릭하세요
add
- 클릭
save and continue
- 클릭하세요
- 클릭
back to dashboard
- 앱 검토 요청 제출하기
온라인 액세스와 오프라인 액세스의 차이점
“온라인 액세스와 오프라인 액세스의 차이점” 섹션Capacitor에서 Google Login을 사용하는 방법은 여러 가지가 있습니다. 다음은 두 방식의 차이점을 정리한 표입니다:
| 온라인 액세스 | 오프라인 액세스 | |
|---|---|---|
| 백엔드 필요 | ❌ | ✅ |
| 장기 유지 액세스 토큰 | ❌ | ✅ |
| 간편한 설정 | ✅ | ❌ |
어떤 방식을 선택해야 할지 모르겠다면, 다음 시나리오를 참고하세요:
-
사용자가 로그인하자마자 커스텀 JWT를 발급해야 하는 경우입니다. 앱에서 Google API를 호출하지는 않습니다.
이 경우에는 online access를 선택하세요.
-
앱이 클라이언트에서 Google API를 호출하지만, 백엔드에서는 호출하지 않는 경우입니다.
이 경우에는 online access를 선택하세요.
-
사용자가 앱을 활발히 사용하는 동안에만 백엔드에서 Google API를 호출하는 경우입니다.
이 경우에는 online access를 선택하세요.
-
사용자가 앱을 사용 중이지 않을 때도 주기적으로 사용자의 캘린더를 확인해야 하는 경우입니다.
이 경우에는 offline access를 선택하세요.
online access를 위한 백엔드 예시
“online access를 위한 백엔드 예시” 섹션이번 튜토리얼에서는 백엔드에서 사용자를 검증하는 방법을 알아봅니다.
이 예제는 매우 간단하며 다음 기술들을 기반으로 합니다:
이 예제의 code는 여기서 확인할 수 있습니다 여기서
다음과 같습니다:
원리는 매우 간단합니다. 간단한 GET 요청을 https://www.googleapis.com/oauth2/v3/tokeninfo 로 보내면 토큰의 유효 여부를 반환하며, 유효할 경우 사용자의 이메일을 제공합니다. 또한 사용자 토큰에 대한 기타 정보도 함께 제공합니다.
이를 통해 사용자에게 자체 JWT를 발급하거나 세션 쿠키를 생성할 수 있습니다. 최종 인증 구현 방식은 무궁무진합니다.
Google API를 호출하고 싶다면 다음을 확인해 보시길 강력히 권장합니다. Google OAuth 2.0 Playground. 여기서 호출 가능한 API를 쉽게 확인할 수 있습니다.
자체 백엔드에서 offline access 사용하기
“자체 백엔드에서 offline access 사용하기” 섹션offline access를 사용하려면 다음 항목이 필요합니다:
- HTTP 서버
이 예제에서는 앱에 offline access를 제공하기 위해 다음 기술들을 사용합니다:
-
LowDb (간단한 데이터베이스)
이 예제의 code는 다음에서 확인할 수 있습니다. 여기서
클라이언트 code는 다음과 같습니다:
import { Capacitor } from '@capacitor/core';import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() { await SocialLogin.initialize({ google: { webClientId: '[redacted]', iOSClientId: '[redacted]', iOSServerClientId: 'The same value as webClientId', mode: 'offline' // <-- important } }) const response = await SocialLogin.login({ provider: 'google', options: { forceRefreshToken: true // <-- important } })
if (response.provider === 'google') { const result = response.result as GoogleLoginOfflineResponse const res = await fetch(`${baseURL}/auth/google_offline`, { headers: { "Content-Type": "application/json" }, body: JSON.stringify({ serverAuthCode: result.serverAuthCode, platform: Capacitor.getPlatform() }), method: "POST" })
if (res.status !== 200) { popoutStore.popout("Full google login failed", "check console"); return }
const { jwt } = await res.json(); const userinfo = await fetch(`${baseURL}/auth/get_google_user`, { headers: { Authorization: `Bearer ${jwt}` } }) if (userinfo.status !== 200) { popoutStore.popout("Full google (userinfo) login failed", "check console"); return } popoutStore.popout("userinfo res", await userinfo.text()); }}여기서 빠진 부분을 확인하세요. 없는 것은 SocialLogin.refresh() 앱 내 호출입니다. 이는 의도된 동작입니다. Google 오프라인 모드에서 refresh는 백엔드가 다음을 교환하고 serverAuthCode refresh token을 안전하게 저장한 뒤 발생합니다.
Google Login Setup부터 계속 진행하세요
“Google Login 설정 계속하기” 섹션사용 중인 경우 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단계 인증의 구현 세부 사항.