내용으로 건너뛰기

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:

  • __CAPGO_KEEP_0__

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

  1. 다음으로 이동하세요: console.cloud.google.com
  2. 프로젝트 선택기 클릭 Google Console 프로젝트 선택기
  3. 프로젝트가 이미 없다면, 새로운 프로젝트를 생성하세요 새로운 프로젝트 만들기.
    1. 클릭 New project Google Console에서 New Project 버튼을 클릭하세요.
    2. 프로젝트 이름을 입력하고 Create 프로젝트 이름을 입력하는 화면
    3. 올바른 프로젝트가 선택되어 있는지 확인하세요. 선택된 프로젝트 이름이 나타나면 올바른 프로젝트가 선택된 것입니다.
  4. 구성을 시작하세요. OAuth consent screen
    1. 검색 바를 클릭하세요.

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

      OAuth 동의 화면 옵션을 클릭하세요.
    3. 구성 화면 동의 설정

      클릭하세요 create

      앱 정보에 대한 정보를 입력하세요.
  5. 앱 정보 섹션에서 시작하겠습니다. 앱 이름과 사용자 지원 이메일 필드가 표시됩니다.
    1. 앱 이름과 사용자 지원 이메일을 입력하세요. App Information

      주의
      • 앱 이름과 사용자 지원 이메일을 정확하게 입력하세요. App Name
      • 입력하세요 user support email
      1. 당신은 사용할 수 있습니다. 앱 로고를 추가할 수 있습니다.

        OAuth 동의 화면의 앱 로고 업로드 섹션
      2. 당신 SHOULD 설정해야 할 App domain

        애플리케이션 도메인 설정 섹션에 인증된 도메인 필드
      3. 당신 필수 개발자의 이메일을 제공해야 합니다.

        개발자 연락처 정보 섹션에 이메일 필드를 포함합니다.
      4. 클릭하여 save and continue

        폼 하단의 저장 및 계속하기 버튼
  6. 스코프를 구성하세요.
    1. 클릭하여 add or remove scopes

      스코프 구성 화면의 스코프 추가/제거 버튼
    2. 다음 스코프를 선택하고 클릭하세요. update

      이메일 및 프로필 스코프가 선택된 스코프 선택 대화상자
    3. 클릭하여 save and continue

      스코프 화면의 저장 및 계속하기 버튼
  7. 사용자 추가
    1. 클릭 add users 테스트 사용자 섹션의 사용자 추가 버튼
    2. Google 이메일을 입력하고 엔터를 클릭한 후 add 테스트 사용자 입력란과 사용자 추가 버튼
    3. 클릭 save and continue 테스트 사용자 화면의 저장 및 계속 버튼
  8. 클릭 back to dashboard 완료 페이지 하단의 대시보드로 돌아가기 버튼
  9. 인증을 위해 앱을 제출하세요

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

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

Google 로그인과 Capacitor을 사용하는 여러 가지 방법이 있습니다. 두 가지의 차이점을 요약한 표가 있습니다.

온라인 접근오프라인 접근
백엔드가 필요합니다❌✅
장기적인 접근 토큰❌✅
쉬운 설정✅❌

아직도 어떤 것을 선택해야 할지 모르는 경우, 다음 시나리오를 고려해 보세요:

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

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

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

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

  3. 앱이 백엔드에서 Google API를 호출하지만 사용자가 앱을 사용하고 있는 경우에만 호출하는 경우

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

  4. 앱이 사용자가 앱을 사용하지 않는 경우에도 사용자의 캘린더를 주기적으로 확인하는 경우

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

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

Section titled “온라인 접근을 위한 예시 백엔드”

이 튜토리얼의 이 부분에서, 나는 사용자의 인증을 백엔드에서 검증하는 방법을 보여줄 것이다.

이 예시는 매우 단순하고, 다음과 같은 기술을 기반으로 할 것이다:

이 예시의 code를 찾을 수 있다 여기

보시다시피:

VS Code에서 Google 인증 code를 보시다시피, 토큰을 검증하는 것이 간단하다.

아이디어는 매우 단순하다. 단순한 __CAPGO_KEEP_2__를 GET __CAPGO_KEEP_2__는 https://www.googleapis.com/oauth2/v3/tokeninfo 그것은 유효한 토큰인지 여부를 반환하고, 유효한 경우 사용자의 이메일을 반환하며, 사용자의 토큰에 대한 추가 정보도 제공합니다.

구글 OAuth Playground에서 사용자 정보와 함께 토큰 정보 응답을 보여줍니다.

그리고 사용자에게 자체 JWT를 발급하거나 세션 쿠키를 발급하는 등의 인증 구현을 끝내는 데 여러 가지 방법이 있습니다.

Google API의 경우 Google API를 호출하고 싶다면, 강력히 추천하는 대안으로는 구글 OAuth 2.0 Playground. 그곳에서 쉽게 어떤 API를 호출할 수 있는지 확인할 수 있습니다.

사용자에게 오프라인 접근 권한을 제공하는 방법

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

HTTP 서버

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

Hono

이 예제의 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 로그인 플러그인은 Google 계정으로 로그인하는 기능을 제공합니다. SocialLogin.refresh() Hono Zod validator serverAuthCode Zod

구글 로그인 설정에서 계속하기

구글 로그인 설정에서 계속하기

Google Login Setup을 사용 중이라면 구글 로그인 설정 인증 및 계정 흐름을 계획하고 싶다면 @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-passkey Using @capgo/capacitor-passkey Using @capgo/capacitor-native-biometric Using @capgo/capacitor-social-login 구글 로그인 구현 세부 사항에 대한 @capgo/capacitor-native-biometric 두 단계 인증 구글 로그인 구현 세부 사항에 대한 두 단계 인증