Android에서 Google 로그인
이 플러그인에 대한 설치 단계와 전체 마크다운 가이드를 포함하는 설정 프롬프트를 복사하세요.
소개
소개란In this guide, you will learn how to setup Google Login with Capgo Social Login for Android. I assume that you have already read the 일반 설정 가이드를 이미 읽었다고 가정합니다..
Android에서 Google 로그인 사용
Android에서 Google 로그인을 설정하는 방법을 배울 것입니다.이 부분에서 Android에서 Google 로그인을 설정하는 방법을 배울 것입니다.
-
Android 클라이언트 ID 만들기
-
검색 바 클릭
-
검색어 입력
credentials그리고APIs and Services스크린샷의 2번에 해당하는
-
자격 증명 옵션 클릭
create credentials
-
선택
OAuth client ID
-
Select the
Android애플리케이션 유형
-
Android Studio를 열어보세요
-
프로젝트 탐색기에서 Gradle Scripts 섹션을 찾으세요
Gradle Scripts
-
모듈
build.gradlebuild.gradle (Module: app) 파일을 찾으세요app
-
. 이 값은 이후에 사용됩니다.
android.defaultConfig.applicationId이 값은 이후에 사용됩니다.package name__CAPGO_KEEP_0__
-
__CAPGO_KEEP_2__
android__CAPGO_KEEP_3__./gradlew signInReport
- __CAPGO_KEEP_5__
SHA1.
- __CAPGO_KEEP_7__
applicationId__CAPGO_KEEP_8__Package Name__CAPGO_KEEP_9__create
-
-
__CAPGO_KEEP_11__
-
Go to the
Create credentialsGoogle Console 페이지로 이동하세요. -
Set application type to
Web
-
Click
Create
-
Copy the client ID, you’ll use this as the
webClientIdcode에 사용할 웹 클라이언트 ID를 복사하세요.
-
-
앱을
MainActivity-
앱을 Android Studio에서 열어주세요. 앱을 실행할 수 있습니다.
cap open android -
Find
MainActivity.java-
폴더를 열기
app폴더
-
찾기
java
-
찾아보세요
MainActivity.java그리고 클릭하여
-
-
수정
MainActivity.java다음 code을 추가하세요import ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
파일을 저장
-
-
Use Google Login in your application
-
먼저 import
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
initialize를 호출하세요. 이 함수는 한 번만 호출해야 합니다.
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
호출
SocialLogin.login버튼을 만들고 클릭 시 다음 code을 실행하세요.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
백엔드에서 Google 리프레시 토큰을 저장하고, 백엔드에서 리프레시하세요.
-
테스트를 위해 에뮬레이터를 구성하세요.
Device manager에뮬레이터로 이동하세요.
-
Android Studio의 디바이스 매니저에서 플러스 버튼이 강조된 상태로
-
가상 디바이스 구성에서 가상 디바이스 생성 버튼을 클릭하세요.
Play Store플레이 스토어를 지원하는 디바이스 중에任意의 디바이스를 선택하세요.
As you can see, the
pixel 8supports thePlay Storeservices -
Click
next
-
OS 이미지가 다음 형식이어야 합니다.
Google Play. IT MUST OS 이미지가 다음 형식이어야 합니다.Google Play
-
다음 단계를 클릭하여
-
Confirm your device. You can name your emulator as you prefer
-
시뮬레이터로
Device Manager가서 기기를 부팅하세요.
-
시뮬레이터가 부팅되면 설정으로 가세요.
-
설정으로
Google Play
- 클릭
Update약 60초 기다리세요.
-
-
애플리케이션을 테스트하세요.
정확하게 모든 것을 수행했다면 Google 로그인 흐름이 올바르게 작동되어야 합니다:
문제 해결
제목: "문제 해결"문제가 발생하면 Google Cloud Console의 앱 구성과 값을 비교하세요. Android Google Sign-In 오류는 일반적으로 패키지 이름, SHA-1, 또는 클라이언트 ID 일치 오류로 인해 발생합니다.
인증 관리자, SHA-1 및 Firebase
제목: "인증 관리자, SHA-1 및 Firebase"Android에서 이 플러그인은 Google Credential Manager (androidx.credentials 그리고 Google에 로그인하세요) GoogleSignInClient API. GetCredentialCustomException: [28444] Developer console is not set up correctly Logcat 오류, 예를 들어
Logcat을 필터링하세요. GoogleProvider or CapgoSocialLogin after a failed login. The plugin logs your package name, signing SHA-1, and a masked webClientId so you can compare them against Google Cloud Console.
Google Cloud 설정이 필요합니다.
Section titled “Google Cloud 설정이 필요합니다.”Google Cloud 프로젝트에 두 가지 종류의 OAuth 2.0 클라이언트 ID가 필요합니다.
| 클라이언트 유형 | 사용 목적 | 설치 위치 |
|---|---|---|
| 웹 애플리케이션 | 서버 / ID 토큰 대상 | webClientId in SocialLogin.initialize() |
| Android, 각 인증 키당 하나씩 | Google Cloud Console에서만 사용하세요. 이 ID를 | A common mistake는 Android client ID를 사용하는 것입니다. webClientId |
Credential Manager는 Web client ID를 필요로 합니다. Android client ID는 단지 패키지 이름과 SHA-1만 등록하면 됩니다. webClientId테스트하는 빌드에 사용하는 인증서당 Android OAuth 클라이언트를 하나씩 생성하세요:
Debug:
- debug 버전의 경우.
./gradlew signingReportRelease: 실제로 설치하는 APK 또는 AAB에서. - Play App Signing: Play Console > App integrity > App signing key certificate에서 찾습니다. Play Store 빌드에 필요합니다. 업로드 키 SHA-1이 이미 등록되어도.
- The
in applicationId in android/app/build.gradle Android OAuth client 패키지 이름이 정확히 일치해야 합니다. 포함된任何 접미사도. .debug 테스트 모드인 OAuth 동의 화면이 있는 경우, Audience > 테스트 사용자 아래에 테스트하는 모든 Google 계정을 추가하세요. 앱을 Production으로 게시하는 것은
와 email 권한에 필요하지 않습니다. Digital Asset Links ( profile )은 Credential Manager를 통해 Google과 로그인하는 경우에만 필요합니다.assetlinks.jsonGoogle Cloud의 변경 사항은 몇 시간 동안 전파될 수 있습니다.
오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다.
제목이 '오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다.'인 섹션
이것은 거의 항상 Google이 설치된 APK 서명 인증서, 패키지 이름, 및를 combination으로 거부했을 때 발생합니다. 이 체크리스트를 통해 작업하세요: webClientId확인
- 이것은 거의 항상 Google이 설치된 APK 서명 인증서, 패키지 이름, 및
webClientId__CAPGO_KEEP_0__은 웹 애플리케이션 클라이언트 ID로 끝나며.apps.googleusercontent.com. - 애플리케이션을 실행하고, 실패를 재현하고, Logcat을 읽어보세요.
GoogleProvider,signingSha1=Android 및package=. - Google Cloud Console > Credentials에서 , Android OAuth 클라이언트를 열고 정확한 패키지 이름 및 SHA-1을 확인하세요.릴리스 빌드를 테스트하는 경우, 디버그 키 스토어만으로 SHA-1을 등록하지 마세요.
- Play 스토어를 통해 앱을 배포하는 경우, 또한 Play 앱 서명 SHA-1을 등록하세요.
- 웹 및 Android 클라이언트가 동일한 Google Cloud 프로젝트에 존재해야 합니다.
- consent 화면이 테스트 모드일 경우, Google 계정이 테스트 사용자인지 확인하세요.
- 콘솔 변경 후 기다리며 다시 시도하세요.
- 디버그 빌드의 계정 선택이 잘못된 경우에도 SHA-1 또는 클라이언트 ID 불일치가 발생할 수 있습니다. 콘솔 설정을 위에서부터 수정하세요.
USER_CANCELLED __CAPGO_KEEP_0__
SHA-1을 설치한 빌드에서 추출하세요
SHA-1을 설치한 빌드에서 추출하세요debug 또는 로컬 빌드:
cd android && ./gradlew signingReport인증된 릴리스 APK:
keytool -printcert -jarfile android/app/release/app-release.apk해당 패키지 이름이 일치하는 Android OAuth 클라이언트에 SHA-1을 추가하고 동일한 인증된 APK를 다시 설치한 후 다시 테스트하세요:
adb install android/app/release/app-release.apk로그인 결과를 읽는 중입니다
Section titled “로그인 결과 읽기”__CAPGO_KEEP_0__는 result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Firebase Auth의 경우 idToken 를 사용하여 webClientId 에서 initialize.
개발용 SHA-1 인증서를 얻을 수 없다면 이 이슈 댓글 는 프로젝트에 키스토어를 추가하는 방법을 설명합니다.
Google Login on Android에서 계속하기
Section titled “Google Login on Android에서 계속하기”__CAPGO_KEEP_1__를 사용하고 있습니다. Google Android 로그인 인증 및 계정 흐름을 계획하고 연결하려면 @capgo/capacitor-social-login을 사용하여 @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의 구현 세부 정보를 위해 두 단계 인증 두 단계 인증의 구현 세부 정보를 위해