내용으로 건너뛰기

구글 로그인 설정

GitHub

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

  • Google 계정

일반 설정

제목

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

  1. 다음으로 이동하세요. console.cloud.google.com
  2. 프로젝트 선택기 클릭 구글 콘솔 프로젝트 선택기
  3. 프로젝트가 이미 없으시다면, 새로운 프로젝트 만들기.
    1. 구글 콘솔에서 New project 구글 콘솔에서 새로운 프로젝트 버튼 클릭
    2. 프로젝트 이름을 입력하고 Create 프로젝트 이름을 입력하고 만들기 버튼 클릭
    3. 프로젝트 이름이 잘못된 프로젝트가 아닌지 확인 프로젝트 이름이 잘못된 프로젝트가 아닌지 확인
  4. 프로젝트 이름이 잘못된 프로젝트가 아닌지 확인 OAuth consent screen
    1. 검색 바를 클릭하세요.

      구글 콘솔 검색 바
    2. 검색하고 OAuth consent screen 그것을 클릭하세요.

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

      외부 및 내부 옵션을 포함한 OAuth 동의 화면 사용자 유형 선택 create

      (이 항목은 개발자에게만 해당됩니다.)
  5. 앱 정보를 입력하세요
    1. 앱 정보를 입력하기 시작하세요 App Information

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

        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. 인증을 위해 앱을 제출하세요

이것은 로컬 테스트에는 필요하지 않지만, 실제 배포에는 필수입니다.

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

There are multiple ways to use Google Login with Capacitor. Here is a table that summarizes the differences between the two:

구글 로그인과 __CAPGO_KEEP_0__을 사용하는 방법은 여러 가지입니다. 두 가지의 차이점을 비교한 표를 아래에示합니다.오프라인 접근
백엔드가 필요합니다
장기 유지 토큰
쉬운 설정

__CAPGO_KEEP_0__

  1. 을 액세스 토큰과 리프레시 토큰으로 교환하고,

    그런 토큰들을 백엔드에서 리프레시해야 합니다.

  2. 아직도 어떤 것을 선택해야 할지 모르는 경우,

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

  3. 앱이 백엔드에서 구글 API를 호출하지만, 사용자가 앱을 사용하는 중일 때만

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

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

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

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

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

이 튜토리얼의 이 부분에서, 사용자를 백엔드에서 검증하는 방법을 보여드리겠습니다.

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

이 예제의 code를 찾을 수 있습니다 여기

아래와 같이 보시면:

Capacitor Code에서 Google 인증 code을 보여주며 토큰을 검증합니다.

이dea는 매우 간단합니다. 사용자에게 간단한 요청을 보내고, 이 요청이 성공하면 토큰의 유효성을 검사하고, 유효하면 사용자의 이메일과 사용자 토큰에 대한 추가 정보를 제공합니다. 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 백엔드에서 사용자에게 오프라인 접근을 사용합니다.. From there you can easily see what APIs you can call.

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

  • 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() Google 로그인 설정에서 계속하기 serverAuthCode 제목: Google 로그인 설정에서 계속하기

Google 로그인 설정을 사용하여 인증 및 계정 흐름을 계획하고 있다면

Google 로그인 설정

@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 사용하여 네이티브 기능을 연결합니다. @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 사용하여 네이티브 기능을 연결합니다. Copy to clipboard Using @capgo/capacitor-social-login for the native capability in Using @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, 그리고 두 단계 인증 구현 세부 정보는 두 단계 인증에서 확인할 수 있습니다.