내용으로

Google 로그인 설정

GitHub

이 안내서에서 Google 로그인을 설정하는 방법을 배울 것입니다. Capgo Social Login과 함께 Google 로그인을 설정하는 방법을 배울 것입니다. Google 로그인을 설정하려면 다음이 필요합니다.

  • Google 계정

일반 설정

주의

Google Cloud 콘솔로 이동하세요.

  1. console.cloud.google.com 프로젝트 선택자 클릭
  2. Cloudflare Google Console Project Selector
  3. 프로젝트가 없으시면 새로운 프로젝트를 생성하세요.
    1. Google Console에서 New project Google Console의 "새로운 프로젝트" 버튼을 클릭하세요
    2. 프로젝트 이름을 입력하고 "만들기" 버튼을 클릭하세요 Create 프로젝트 이름을 입력하는 화면
    3. 올바른 프로젝트가 선택되었는지 확인하세요 선택된 프로젝트 이름이 표시됩니다
  4. 설정을 시작하세요 OAuth consent screen
    1. 검색 바를 클릭하세요

      Google Console의 검색 바
    2. __CAPGO_KEEP_0__ 검색하기 OAuth consent screen __CAPGO_KEEP_1__을 클릭하세요

      OAuth 동의 화면 옵션을 보여주는 검색 결과
    3. 동의 화면 구성

      외부 및 내부 옵션을 포함하는 OAuth 동의 화면 __CAPGO_KEEP_2__ 유형 create

      앱에 대한 정보를 입력하세요
  5. 앱 개발을 시작해 보겠습니다.
    1. __CAPGO_KEEP_2__ : __CAPGO_KEEP_2__ 유형은 앱이 누구에게 공개되는지에 따라 결정됩니다. 외부 앱은 누구나 앱을 사용할 수 있습니다. 내부 앱은 특정 조직이나 회사만 앱을 사용할 수 있습니다. App Information

      앱 정보 섹션에서 앱 이름과 사용자 지원 이메일 필드가 표시됩니다.
      • __CAPGO_KEEP_0__을 입력하세요. App Name
      • __CAPGO_KEEP_1__을 입력하세요. user support email
      1. __CAPGO_KEEP_2__ CAN 앱 로고를 추가하세요.

        OAuth 동의 화면의 앱 로고 업로드 섹션
      2. 당신 SHOULD 구성해야 하는 App domain

        인증된 도메인 필드가 있는 앱 도메인 구성 섹션
      3. You 개발자의 이메일을 반드시 제공해야 합니다. 개발자 연락처 정보 섹션에 이메일 필드를 제공해야 합니다.

        Click on
      4. 폼 하단의 Save and Continue 버튼을 클릭하세요. save and continue

        Configure the scopes
  6. scopes configuration 화면의 Add or remove scopes 버튼을 클릭하세요.
    1. Select the following scopes and click add or remove scopes

      다음 스코프를 선택하고 클릭하세요.
    2. Select the following scopes and click on the Add or remove scopes button to configure the scopes. update

      이메일 및 프로필 범위 선택 대화 상자
    3. 클릭 save and continue

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

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

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

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

온라인 접근오프라인 접근
백엔드가 필요합니다.
Long-lived access token
Easy setup

이러한 상황을 고려해 보세요:

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

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

  2. 앱이 클라이언트에서 Google API를 호출하지만 백엔드에서 호출하지 않습니다.

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

  3. 앱이 백엔드에서 Google API를 호출하지만 사용자가 앱을 사용하는 동안만 호출합니다.

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

  4. 사용자의 캘린더를 확인하기 위해 앱은 일정 기간에 걸쳐 사용자가 앱을 사용하지 않아도 자동으로 확인합니다.

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

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

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

이 부분의 튜토리얼에서, 사용자 인증을 백엔드에서 어떻게 하는지 보여드리겠습니다.

이 예제는 매우 간단하고, 다음 기술을 기반으로 하겠습니다:

이 예제의 code를 여기서 찾으실 수 있습니다. 여기

아래와 같이

Code에서 Google 인증을 보여주는 code입니다. 이 인증은 토큰을 검증합니다.

아이디어는 간단합니다. 간단한 요청을 보내고, 이 요청은 토큰이 유효한지 여부를 알려주고, 유효한 경우 사용자의 이메일과 사용자 토큰에 대한 기타 정보를 제공합니다. GET Google OAuth Playground에서 토큰 정보 응답을 보여주는 사용자 세부 정보 https://www.googleapis.com/oauth2/v3/tokeninfo 그곳에서 사용자에게 자체 JWT를 발급하거나 세션 쿠키를 발급할 수 있습니다. 최종 인증 구현의 가능성은 끝이 없습니다.

Google __CAPGO_KEEP_0__를 호출하고 싶다면, 강력히 추천합니다.

Google의 OAuth 2.0 Playground

If you do want to call Google API’s, I would strongly recommend looking at __CAPGO_KEEP_0__에서 오프라인 접근을 사용하려면 다음이 필요합니다.__CAPGO_KEEP_0__에서 오프라인 접근을 사용하려면 다음이 필요합니다.

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

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

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

  • 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());
}
}

이곳에 누락된 것은 앱 내에 "refresh"가 없다는 것입니다. 그 이유는 Google 오프라인 모드에서, 백엔드가 "refresh token"을 안전하게 저장하기까지 "refresh"가 발생하기 때문입니다. SocialLogin.refresh() Google 로그인 설정에서 계속 serverAuthCode Google 로그인 설정을 사용하여 인증 및 계정 흐름을 계획하고 있는 경우,

Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login @capgo/capacitor-passkey implementation 세부 사항을 위한 @capgo/capacitor-passkey @capgo/capacitor-native-biometric implementation 세부 사항을 위한 @capgo/capacitor-native-biometric, 그리고 두 단계 인증 두 단계 인증의 implementation 세부 사항을 위한