Skip to content

Google 로그인 설정

GitHub

In this guide, you will learn how to setup Google Login with Capgo Social Login. You will need the following in order to setup Google Login:

  • Google 계정

이 부분에서 Google이 표시하는 로그인 화면을 설정하겠습니다.

  1. 아래 링크를 클릭하여 이동하세요. console.cloud.google.com
  2. 프로젝트 선택기 클릭 Google Console 프로젝트 선택기
  3. 프로젝트가 아직 없으시다면 새로운 프로젝트 생성.
    1. 클릭 New project Google Console에서 새로운 프로젝트 버튼
    2. 프로젝트 이름을 입력하고 클릭하세요. Create 프로젝트 이름 화면에 이름 필드와 Create 버튼이 표시됩니다.
    3. 올바른 프로젝트가 선택되어 있는지 확인하세요. 프로젝트 이름이 선택자에 표시되어 올바른 프로젝트 선택을 나타냅니다.
  4. 구성을 시작하세요. OAuth consent screen
    1. 검색 바를 클릭하세요.

      Google Console 검색 바
    2. 검색어를 입력하세요. OAuth consent screen 검색 결과에서

      선택하세요.
    3. OAuth 동의 화면 옵션을 클릭하세요.

      클릭하여 create

      외부 및 내부 옵션을 포함하는 OAuth 동의 화면 유형 선택
  5. 앱에 대한 정보를 입력하세요.
    1. 앱 정보 섹션을 시작하여 앱 이름과 사용자 지원 이메일 필드를 표시합니다. App Information

      앱 이름과 사용자 지원 이메일을 입력하세요.
      • 주의 App Name
      • __CAPGO_KEEP_0__을 입력하세요. user support email
      1. __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__

        앱 로고를 추가할 수 있습니다.
      2. 당신 SHOULD 권한 있는 도메인 필드가 있는 App 도메인 구성 섹션을 App domain

        설정해야 합니다.
      3. 설정해야 합니다. 주의 개발자의 이메일을 제공하세요

        이메일 필드를 포함한 개발자 연락처 정보 섹션
      4. 클릭하세요 save and continue

        폼 하단의 Save and Continue 버튼
  6. 범위 구성
    1. 클릭하세요 add or remove scopes

      범위 구성 화면의 Add or remove scopes 버튼
    2. 이메일 및 프로필 범위를 선택하고 클릭하세요 update

      범위 선택 대화창에서 이메일 및 프로필 범위를 선택하세요
    3. 클릭하세요 save and continue

      범위 구성 화면의 Save and Continue 버튼
  7. 테스트 사용자를 추가하세요
    1. Click on add users 테스트 사용자 섹션의 사용자 추가 버튼을 클릭하세요.
    2. Google 이메일을 입력하고 Enter를 클릭한 후 add 테스트 사용자용 이메일 입력 필드와 추가 버튼
    3. Click save and continue 테스트 사용자 화면의 Save and Continue 버튼을 클릭하세요.
  8. Click back to dashboard 완료 페이지 하단의 Back to dashboard 버튼을 클릭하세요.
  9. 인증을 위해 앱을 제출하세요.

온라인 접근과 오프라인 접근의 차이점

온라인 접근과 오프라인 접근의 차이점에 대한 섹션

Google 로그인과 Capacitor을 사용하는 방법은 여러 가지입니다. 아래 표는 두 가지 방법 간의 차이점을 요약합니다.

온라인 접근오프라인 접근
백엔드가 필요합니다
장기적인 접근 토큰
쉽게 설정할 수 있습니다

다음 시나리오를 고려해 보세요:

  1. 사용자가 로그인하면 즉시 사용자에게 커스텀 JWT를 발급하고 싶다면, 앱은 Google API를 호출하지 않습니다.

    이 경우 온라인 접근을 선택하세요.

  2. 앱이 클라이언트에서 Google API를 호출하지만 백엔드에서 호출하지 않는 경우

    이 경우 온라인 접근을 선택하세요.

  3. 사용자가 앱을 사용하지 않을 때도 백엔드에서 Google API를 호출하지만 사용자가 앱을 사용할 때만 호출하는 경우

    이 경우 온라인 접근을 선택하세요.

  4. 사용자가 앱을 사용하지 않을 때도 백엔드에서 사용자의 캘린더를 주기적으로 확인하고 싶다면

    이 경우 오프라인 접근을 선택하세요.

온라인 접근을 위한 예제 백엔드

온라인 접근을 위한 예제 백엔드 제목

이 튜토리얼의 이 부분에서, 나는 사용자의 인증을 backend에서 어떻게 확인하는지 보여줄 것이다.

이 예제는 매우 단순하고, 다음 기술에 기반할 것이다.

이 예제의 code를 여기서 찾을 수 있다. 여기서 보는 것과 같이:

VS __CAPGO_KEEP_0__에서 Google 인증 __CAPGO_KEEP_1__을 보여주고, 토큰을 검증하는 것을 볼 수 있다.

VS Code showing Google authentication code that verifies tokens

요청을 보내고, GET 이것은 토큰이 유효한지 여부와 사용자의 이메일, 사용자의 토큰에 대한 추가 정보를 반환한다. https://www.googleapis.com/oauth2/v3/tokeninfo 이것은 사용자가 로그인한 후, 사용자가 로그인한 후에 사용할 수 있는 정보를 제공한다.

Google OAuth Playground에서 사용자 정보와 함께 토큰 정보 응답을 보여주는 화면입니다.

그곳에서 사용자에게 자체 JWT를 발급하거나 세션 쿠키를 발급하는 등의 다양한 방법이 가능합니다.

만약 Google API를 호출하고 싶다면, 최종 인증 구현을 위해선 강력히 추천하는 것이 있습니다. Google의 OAuth 2.0 Playground그곳에서 쉽게 어떤 API를 호출할 수 있는지 확인할 수 있습니다.

자체 백엔드와 함께 오프라인 접근 사용

자체 백엔드와 함께 오프라인 접근 사용

오프라인 접근을 사용하려면 다음이 필요합니다.

  • HTTP 서버

이 예제에서는 다음 기술을 사용하여 앱 내에서 오프라인 접근을 제공하겠습니다.

이 예제의 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());
}
}

주의하십시오. 여기에는 앱에서 호출하는 코드가 없습니다. 그 이유는 Google 오프라인 모드에서는 백엔드가 SocialLogin.refresh() refresh 토큰을 안전하게 저장한 후에 refresh가 발생하기 때문입니다. serverAuthCode Google Login Setup에서 계속 진행해 주세요.

__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login __CAPGO_KEEP_0__/__CAPGO_KEEP_1__를 사용하는 경우 Google Login 설정 Using @capgo/capacitor-social-login capgo/capacitor-social-login capgo/capacitor-social-login capgo/capacitor-social-login 구현 세부 사항 capgo/capacitor-passkey 구현 세부 사항 capgo/capacitor-native-biometric 구현 세부 사항 capgo/capacitor-native-biometric 구현 세부 사항과 함께 사용합니다. capgo/capacitor-passkey 구현 세부 사항과 함께 사용합니다. 두 단계 인증 두 단계 인증 구현 세부 사항에 대한 설명