메뉴로 바로가기

Android에서 Google 로그인

GitHub

이 가이드에서, Android용 Capgo Social Login을 사용하여 Google 로그인을 설정하는 방법을 배울 것입니다. 이 가이드를 읽기 전에 일반 설정 가이드를 이미 읽었다고 가정합니다. 일반 설정 가이드.

Android에서 Google 로그인을 사용하는 방법

제목이 'Android에서 Google 로그인을 사용하는 방법'인 섹션

이 부분에서 Android에서 Google 로그인을 설정하는 방법을 배울 것입니다.

  1. Create an Android client ID.

    1. Click on the search bar

      Google Console search bar
    2. Search for credentials and click on the APIs and Services one (number 2 on the screenshot)

      Search results showing credentials option with APIs and Services highlighted
    3. Click on the create credentials

      Create credentials button in Google Console
    4. 선택 OAuth client ID

      인증 정보 생성 메뉴에서 OAuth 클라이언트 ID 옵션을 선택하십시오.
    5. 선택하세요 Android 응용 프로그램 유형

      응용 프로그램 유형 선택 창에서 안드로이드 옵션을 강조한 화면
    6. 안드로이드 스튜디오를 열으십시오.

    7. 네비게이터의 가장 아래 부분에서 Gradle Scripts

      안드로이드 스튜디오 프로젝트 네비게이터의 Gradle Scripts 섹션을 찾으십시오.
    8. Gradle Scripts 섹션에서 build.gradle 모듈의 app

      build.gradle (Module: app) 파일을 찾으십시오.
    9. 복사하십시오. android.defaultConfig.applicationId. 이 프로젝트에 대한 package name Google 콘솔에서

      Build.gradle 파일에 applicationId 설정을 보여줍니다.
    10. 터미널을 열어보세요. 당신이 현재 프로젝트 폴더에 있는지 확인하세요. android 프로젝트 폴더에서 터미널을 열고 ./gradlew signInReport

    gradlew signInReport 명령어를 실행하세요.
    1. 이 명령어의 맨 위로 스크롤을 내보세요. 다음을 확인하세요. SHA1.
    인증서 SHA1 지문이 출력된 터미널
    1. Google 콘솔로 돌아가세요. 패키지 이름 applicationId 인증서 필드에 Package Name SHA1을 입력하고 create
    클릭하세요.
  2. Android 웹 클라이언트를 생성하세요 (이것은 Android용이 필요합니다).

    1. Go to the Create credentials Google Console의

    2. 페이지에서 설정하세요. Web

      Android 앱의
    3. Web 옵션을 선택하세요. Create

      클릭하세요.
    4. 웹 클라이언트 생성 폼에 Create 버튼이 있습니다. webClientId 클라이언트 ID를 복사하세요. 이 값을 JS/TS에서 code로 사용합니다.

      클라이언트 ID 세부 정보에서 Web 클라이언트 ID를 복사하세요.
  3. Android Studio에서 MainActivity

    1. 앱을 열어주세요. Android Studio에서 앱을 실행할 수 있습니다. cap open android

    2. __CAPGO_KEEP_0__ MainActivity.java

      1. Open the app folder

        Android Studio 프로젝트 탐색기에서 App 폴더를 찾으세요
      2. Find java

        Android Studio 프로젝트 구조에서 Java 폴더를 찾으세요
      3. Find your MainActivity.java 그리고 클릭하여

        MainActivity.java 파일을 패키지 구조에서 찾으세요
    3. Modify 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 {
      @Override
      public 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
      @Override
      public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
      }
    4. __CAPGO_KEEP_0__

  4. Google 로그인 기능을 애플리케이션에 사용하세요

    1. 먼저 import를 해주세요 SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. 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',
      }
      })
      })
    3. 호출 SocialLogin.login버튼을 만들고 클릭 시 다음 code를 실행하세요.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. 테스트를 위해 에뮬레이터를 설정하세요.

    1. Go into Device manager 에뮬레이터로 들어가서 플러스 버튼을 클릭하세요.

      Android Studio의 Device Manager에서 플러스 버튼이 강조된 상태로
    2. 가상 장치를 생성하세요.

      가상 장치 생성 버튼을 클릭하세요.
    3. 가상 장치 구성에서 Play Store 아이콘을 클릭하세요.

      하드웨어 선택에서 Play Store 지원 장치가 표시됩니다.

      보시다시피, pixel 8Play Store 서비스를 지원합니다.

    4. 클릭 next

      기기 생성 마법사에서 다음 단추
    5. 운영 체제 이미지가 Google Play. IT MUST 의 유형이어야 합니다. Google Play

      시스템 이미지 선택 화면에서 Google Play 유형 이미지가 표시됩니다.
    6. 클릭

      시스템 이미지 선택 화면에서 다음 단추
    7. __CAPGO_KEEP_0__를 확인하세요. 에뮬레이터의 이름을 마음대로 지어도 됩니다.

      __CAPGO_KEEP_0__ 설정을 확인하는 화면입니다. Finish 버튼이 있습니다.
    8. __CAPGO_KEEP_0__로 들어가 Device Manager __CAPGO_KEEP_0__를 부팅하세요.

      __CAPGO_KEEP_0__에서 가상 __CAPGO_KEEP_0__를 확인하고 Play 버튼을 클릭하세요.
    9. __CAPGO_KEEP_0__가 부팅되면 __CAPGO_KEEP_0__로 들어가세요.

      __CAPGO_KEEP_0__ 설정 화면입니다. Google Play 옵션을 확인하세요.
    10. __CAPGO_KEEP_0__로 들어가 Google Play

    __CAPGO_KEEP_0__ 화면입니다. Google Play 업데이트가 필요합니다.
    1. __CAPGO_KEEP_0__을 클릭하세요. Update __CAPGO_KEEP_0__ 후 약 60초 기다리세요.
    __CAPGO_KEEP_0__ 업데이트 화면입니다. Update 버튼이 있습니다.
  6. __CAPGO_KEEP_0__

    If you did everything correctly, you should see the Google login flow working properly:

    Android에서 Google 로그인 흐름이 정상적으로 작동하는지 테스트하세요.

If you have any issues, first compare your app configuration with the Google Cloud Console values. Android Google Sign-In failures are usually caused by a package name, SHA-1, or client ID mismatch.

Android에서 Google Sign-In 오류는 일반적으로 패키지 이름, SHA-1, 또는 클라이언트 ID가 일치하지 않아 발생합니다.androidx.credentials and Sign in with Google), not the legacy GoogleSignInClient API. Logcat errors such as GetCredentialCustomException: [28444] Developer console is not set up correctly Android에서 이 플러그인은 Google Credential Manager (Google Sign in with Google) 및 legacy를 사용하지 않습니다. 로그캣 오류는 다음과 같은 스택에서 발생합니다. __CAPGO_KEEP_0__.

로그캣 필터링 GoogleProvider 또는 CapgoSocialLogin 로그인 실패 후에. 플러그인은 패키지 이름, 서명 SHA-1, 그리고 가려진 webClientId 이를 Google Cloud 콘솔에서 비교할 수 있도록 합니다.

Google Cloud 설정이 필요합니다.

구성 요소: Google Cloud 설정이 필요합니다.

Google Cloud 프로젝트에 두 가지 종류의 OAuth 2.0 클라이언트 ID가 필요합니다.

클라이언트 유형사용위치
웹 애플리케이션서버 / ID 토큰 청구자webClientId Android에서 하나의 서명 키당 SocialLogin.initialize()
Google Cloud Console에서만 확인할 수 있습니다. 이 ID를Android 클라이언트 ID를 사용하는 경우 일반적인 실수입니다. Credential Manager는 Web 클라이언트 ID를 요구합니다. Android 클라이언트에는 단지 콘솔에 등록된 올바른 패키지 이름과 SHA-1만 필요합니다.테스트 빌드를 위한 각 인증서에 대해 Android OAuth 클라이언트를 하나씩 생성하세요. webClientId

Debug: webClientIddebug 버전용입니다.

Release: 실제로 설치하는 APK 또는 AAB에서.

  • Play App Signing: Play Console > 앱 무결성 > 앱 서명 키 인증서에서 확인하세요. Play Store 빌드에는 업로드 키 SHA-1이 이미 등록되어 있어도 필요합니다. ./gradlew signingReport The
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_1__

__CAPGO_KEEP_2__ applicationId Android OAuth 클라이언트 패키지 이름이 정확히 일치해야 합니다. 패키지 이름의 모든 후치 포함. android/app/build.gradle OAuth 동의 화면이 테스트 모드일 경우, 사용자 > 테스트 사용자에서 테스트하는 모든 Google 계정을 추가하세요. 앱을 프로덕션으로 출시하는 것은 필요하지 않습니다. .debug Google Cloud의 변경 사항은 몇 시간 동안 전파될 수 있습니다.

Error 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다. email 개발자 콘솔 설정이 올바르지 않다는 것은 거의 항상 Google가 설치된 APK 서명 인증서, 패키지 이름, 및 combination을 거부했을 때입니다. profile 이 문제를 해결하기 위해 다음 체크리스트를 참조하세요.assetlinks.jsonscopes.

Digital Asset Links (

)은 Sign in with Google through Credential Manager를 위해 필요하지 않습니다.

and

Publishing the app to Production is not required for webClientIdIf the OAuth consent screen is in Testing mode, add every Google account you test with under Audience > Test users.

  1. 확인 webClientId Web 애플리케이션 클라이언트 ID이며 .apps.googleusercontent.com.
  2. 앱을 실행하고 실패를 재현한 후 Logcat을 읽어보세요. GoogleProvider, signingSha1=, 및 package=.
  3. In Google Cloud Console > Credentials, Android OAuth 클라이언트를 열고 정확한 패키지 이름과 SHA-1을 확인하세요.
  4. 릴리즈 빌드 테스트 중인 경우, 디버그 키 스토어의 SHA-1만 등록하지 마세요.
  5. Play Store를 통해 앱을 배포하는 경우, Play App Signing SHA-1도 등록하세요.
  6. Web 및 Android 클라이언트는 동일한 Google Cloud 프로젝트에 존재해야 합니다.
  7. consent 화면이 테스트 중인 경우, Google 계정은 테스트 사용자여야 합니다.
  8. 콘솔 변경 후 기다리며 다시 시도하세요.

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

로그인 결과를 읽는 중입니다.

로그인 결과를 읽는 중입니다. 섹션

__CAPGO_KEEP_0__ 하위에 __CAPGO_KEEP_1__가 있습니다. result:

const login = await SocialLogin.login({ provider: 'google' });
const idToken = login.result?.idToken;

Firebase Auth의 경우 __CAPGO_KEEP_0__를 생성하고 __CAPGO_KEEP_1__를 사용하세요. idToken __CAPGO_KEEP_1__를 사용하여 __CAPGO_KEEP_2__를 입력하세요. webClientId __CAPGO_KEEP_2__에 __CAPGO_KEEP_3__가 없으면 개발 SHA-1 인증서를 얻을 수 없습니다. __CAPGO_KEEP_4__를 사용하세요. initialize.

__CAPGO_KEEP_4__는 이ssue 댓글에서 설명합니다. __CAPGO_KEEP_4__를 사용하여 __CAPGO_KEEP_5__를 프로젝트에 추가하세요. __CAPGO_KEEP_5__에서 __CAPGO_KEEP_6__를 계속하세요.

__CAPGO_KEEP_6__ 섹션: __CAPGO_KEEP_6__를 계속하세요.

__CAPGO_KEEP_0__: __CAPGO_KEEP_7__

만약 Android에서 Google 로그인을 사용하고 있다면 Android에서 Google 로그인을 사용하는 경우 인증 및 계정 흐름을 계획하고 Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login Android에서 사용하는 @capgo/capacitor-social-login의 네이티브 기능을 위해 Using @capgo/capacitor-social-login @capgo/capacitor-social-login의 구현 세부 정보를 위해 @capgo/capacitor-social-login @capgo/capacitor-passkey @capgo/capacitor-passkey의 구현 세부 정보를 위해 @capgo/capacitor-passkey @capgo/capacitor-native-biometric @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-native-biometric의 구현 세부 정보를 위해, 그리고 두 요소 인증 __CAPGO_KEEP_0__ 구현 세부 사항입니다.