구글 로그인 설정
설치
소개
소개 제목이 가이드에서 Google 로그인을 설정하는 방법을 배울 것입니다. Capgo Social Login과 함께 Google 로그인을 설정하려면 다음이 필요합니다.
- Google 계정
일반 설정
제목이 부분에서 Google에서 표시되는 로그인 화면을 설정하겠습니다.
- 다음으로 이동하세요. console.cloud.google.com
- 프로젝트 선택기 클릭
- 프로젝트가 이미 없으시다면, 새로운 프로젝트 만들기.
- 구글 콘솔에서
New project
- 프로젝트 이름을 입력하고
Create
- 프로젝트 이름이 잘못된 프로젝트가 아닌지 확인
- 구글 콘솔에서
- 프로젝트 이름이 잘못된 프로젝트가 아닌지 확인
OAuth consent screen-
검색 바를 클릭하세요.
-
검색하고
OAuth consent screen그것을 클릭하세요.
-
동의 화면을 구성하세요.
외부 및 내부 옵션을 포함한 OAuth 동의 화면 사용자 유형 선택
create
-
- 앱 정보를 입력하세요
-
앱 정보를 입력하기 시작하세요
App Information
- 앱 이름과 사용자 지원 이메일을 입력하세요
App Name - 앱 이름을 입력하세요
user support email
-
당신 CAN 앱 로고를 추가하세요.
-
당신 SHOULD 설정해야 할
App domain
-
제공해야 합니다. 개발자의 이메일 개발자 연락처 정보 섹션에 이메일 필드
-
권한 범위 구성
save and continue
- 앱 이름과 사용자 지원 이메일을 입력하세요
-
- 저장하고 계속하기 버튼
-
권한 범위 구성
add or remove scopes
-
이미지
update
-
버튼
save and continue
-
- 테스트 사용자 추가
- 버튼
add users
- Google 이메일을 입력하고 엔터를 누르시오
add
- 버튼
save and continue
- 버튼
- 클릭
back to dashboard
- 인증을 위해 앱을 제출하세요
이것은 로컬 테스트에는 필요하지 않지만, 실제 배포에는 필수입니다.
온라인 접근과 오프라인 접근의 차이점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__
-
을 액세스 토큰과 리프레시 토큰으로 교환하고,
그런 토큰들을 백엔드에서 리프레시해야 합니다.
-
아직도 어떤 것을 선택해야 할지 모르는 경우,
다음 시나리오를 고려해 보세요:
-
앱이 백엔드에서 구글 API를 호출하지만, 사용자가 앱을 사용하는 중일 때만
이 경우 온라인 접근을 선택하세요
-
앱이 사용자의 캘린더를 주기적으로 확인하기 때문에, 사용자가 앱을 사용하지 않을 때도
이 경우 오프라인 접근을 선택하세요
온라인 접근을 위한 예제 백엔드
온라인 접근을 위한 예제 백엔드이 튜토리얼의 이 부분에서, 사용자를 백엔드에서 검증하는 방법을 보여드리겠습니다.
이 예제는 매우 간단하고, 다음 기술을 기반으로 하겠습니다:
이 예제의 code를 찾을 수 있습니다 여기
아래와 같이 보시면:
이dea는 매우 간단합니다. 사용자에게 간단한 요청을 보내고, 이 요청이 성공하면 토큰의 유효성을 검사하고, 유효하면 사용자의 이메일과 사용자 토큰에 대한 추가 정보를 제공합니다. GET Google OAuth Playground에서 토큰 정보 응답과 사용자 세부 정보를 보여줍니다. https://www.googleapis.com/oauth2/v3/tokeninfo 그리고 그곳에서 사용자에게 JWT를 발급하거나 세션 쿠키를 발급할 수 있습니다. 최종 인증 구현의 가능성은 끝이 없습니다.
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.
Using offline access with your own backend
“__CAPGO_KEEP_0__”를 사용하여 자체 백엔드와 함께 오프라인 접근 사용하기”라는 제목이 있는 섹션오프라인 접근을 사용하려면 다음이 필요합니다:
- HTTP 서버
이 예시에서, 다음 기술을 사용하여 앱에서 오프라인 접근을 제공하겠습니다:
-
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()); }}주의할 점은 앱 내에서 호출이 없습니다. 이는 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, 그리고 두 단계 인증 구현 세부 정보는 두 단계 인증에서 확인할 수 있습니다.