내용으로 건너뛰기

안드로이드에서 구글 로그인

GitHub

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

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

  1. Android 클라이언트 ID를 생성하세요.

    1. 검색 바를 클릭하세요.

      Google 콘솔 검색 바
    2. 검색어를 입력하세요. credentials 그리고 APIs and Services 1번 스크린샷에 표시된 2번을 클릭하세요.

      APIs 및 Services가 강조된 자격 증명 옵션을 보여주는 검색 결과
    3. 클릭하세요. create credentials

      Google Console에서 인증서 생성 버튼 만들기
    4. 선택 OAuth client ID

      인증서 생성 메뉴에서 OAuth 클라이언트 ID 옵션 선택
    5. 선택한 Android 응용 프로그램 유형

      응용 프로그램 유형 선택 창에서 Android 옵션 강조
    6. Android Studio 열기

    7. 네비게이터의 가장 아래 부분에서 Gradle Scripts 섹션을 찾기 Gradle Scripts

      Android Studio 프로젝트 네비게이터의 Gradle Scripts 섹션에서
    8. 모듈 build.gradle build.gradle (Module: app) 파일 찾기 app

      Gradle Scripts 섹션
    9. Copy the android.defaultConfig.applicationId이것은 Google 콘솔에서 사용할 package name Google 콘솔에

      Build.gradle 파일의 applicationId 설정을 보여줍니다
    10. 터미널을 열어보세요. 앱 폴더에 있는지 확인하세요. 그리고 다음 명령어를 실행하세요 android 터미널에 gradlew signInReport 명령어를 실행한 결과 ./gradlew signInReport

    이 명령어의 맨 위로 스크롤을 내보세요. 다음을 확인하세요. Copy the
    1. SHA1 인증서 지문이 표시된 터미널 출력 SHA1.
    Google 콘솔로 돌아가서
    1. 프로젝트 ID를 applicationId SHA1 인증서 지문을 Package Name 인증서 필드에 입력하고 클릭하세요 create
    Android 클라이언트 생성 폼에 패키지 이름 및 SHA1 필드가 입력되어 있습니다.
  2. 웹 클라이언트를 생성하세요 (이것은 Android를 위해 필요합니다).

    1. Google Console의 Create credentials 페이지로 이동하세요.

    2. 설정하세요. Web

      웹 옵션을 선택하세요.
    3. 클릭하세요. Create

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

      Android 클라이언트 생성 폼에 패키지 이름 및 SHA1 필드가 입력되어 있습니다.
  3. 웹 클라이언트를 생성하세요 (이것은 Android를 위해 필요합니다). MainActivity

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

    2. 찾아보기 MainActivity.java

      1. 열기 app 폴더

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

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

        MainActivity.java 파일을 패키지 구조에서 찾으세요
    3. 수정 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. 파일을 저장

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

    1. 먼저 import를 합니다 SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. 초기화 함수를 호출하세요. 이 함수는 한 번만 호출해야 합니다.

      // 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. Google 로그인 버튼을 만들고 클릭 시 다음 __CAPGO_KEEP_0__을 실행하세요. SocialLogin.login. Create a button and run the following code on click.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. 에뮬레이터로 들어가십시오.

    1. 플러스 버튼을 클릭하십시오. Device manager Android Studio의 Device Manager에서 플러스 버튼이 강조되어 있습니다.

      가상 장치를 생성하십시오.
    2. 가상 장치 구성에서 가상 장치 생성 버튼을 클릭하십시오.

      장치 선택 창에서
    3. 어떤 장치를 선택하십시오. Play Store icon

      Play Store 지원하는 장치

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

    4. 클릭 next

      다음 단계
    5. OS 이미지가 Google Play. IT MUST 유형 Google Play

      Google Play 유형의 시스템 이미지
    6. 다음 단계

      시스템 이미지 선택 화면의 다음 버튼
    7. 장치 확인을 위해, 에뮬레이터에 이름을 붙일 수 있습니다.

      설정 완료 버튼이 있는 장치 구성 확인 화면
    8. 입장 Device Manager 시뮬레이터를 부팅하세요

      가상 장치 목록이 있는 디바이스 매니저
    9. 시뮬레이터가 부팅되면, 설정으로 들어가세요

      설정 앱이 표시되는 안드로이드 에뮬레이터
    10. 입장 Google Play

    구글 플레이 옵션을 포함한 설정 화면
    1. 클릭 Update 약 60초 동안 기다려 주세요
    구글 플레이 업데이트 화면에 업데이트 버튼이 있습니다.
  6. 애플리케이션을 테스트하세요.

    모든 것을 올바르게 수행했으면 구글 로그인 흐름이 정상적으로 작동되어야 합니다:

    안드로이드에서 구글 로그인 흐름의 데모를 보여주는 화면입니다. 이 화면은 로그인 프로세스와 인증이 성공적으로 완료된 화면입니다.

문제 해결

문제 해결

문제가 발생한 경우, 구글 클라우드 콘솔의 앱 구성과 값을 비교하세요. 안드로이드 구글 로그인 실패는 일반적으로 패키지 이름, SHA-1, 또는 클라이언트 ID가 일치하지 않아 발생하는 경우입니다.

인증 관리자, SHA-1, 및 파이어베이스

인증 관리자, SHA-1, 및 파이어베이스

안드로이드에서 이 플러그인은 구글 인증 관리자 (Google Credential Manager, Sign in with Google)를 사용합니다. (legacy)androidx.credentials 로그캣 에러는 __CAPGO_KEEP_0__ GoogleSignInClient API GetCredentialCustomException: [28444] Developer console is not set up correctly 그것에서 오는 것입니다.

로그캣 필터링 GoogleProvider 또는 CapgoSocialLogin Google Cloud Console에서 비교할 수 있도록 패키지 이름, 서명 SHA-1, 그리고 가려진 webClientId Google Cloud 설정이 필요합니다.

유형

사용위치웹 애플리케이션
Web application서버 / ID 토큰 청중webClientId in SocialLogin.initialize()
안드로이드, 각 인증 키당 하나씩Google이 당신의 APK가 Google을 호출할 수 있는지를 증명한다.Google Cloud Console에서만 사용하십시오. 이 ID를 webClientId

Android 클라이언트 ID를 사용하는 것은 일반적인 실수이다. webClientIdCredential Manager는 Web 클라이언트 ID를 요구한다. Android 클라이언트에는 단지 올바른 패키지 이름과 SHA-1이 콘솔에 등록되어야 한다.

당신이 테스트하는 빌드에 서명하는 각 인증서에 대해 하나의 Android OAuth 클라이언트를 생성하십시오:

  • Debug: ./gradlew signingReport 데버그 빌드용으로.
  • Release: 실제로 설치하는 APK 또는 AAB에서.
  • Play App Signing: Play Console > 앱 무결성 > 앱 서명 키 인증서에서. Play Store 빌드에 대해 필요합니다. 업로드 키 SHA-1이 이미 등록되어 있다면도.

The applicationId in android/app/build.gradle must exactly match the Android OAuth client package name, including any .debug suffix.

If the OAuth consent screen is in Testing mode, add every Google account you test with under Audience > Test users. Publishing the app to Production is not required for email and profile context: Capgo marketing website. role: Short UI label or navigation item. seen in: page trust.astro. Message key `and` (And)assetlinks.jsonscopes. Digital Asset Links (

) are not required for Sign in with Google through Credential Manager.

Google Cloud changes can take up to a few hours to propagate.

Error 28444: Developer console is not set up correctly

Section titled “Error 28444: Developer console is not set up correctly” webClientId. 이 체크리스트를 따라해 주세요:

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

USER_CANCELLED 구성 오류로 인해 디버그 빌드에서 계정을 선택한 후에도 SHA-1 또는 클라이언트 ID 불일치가 발생할 수 있습니다. 위의 콘솔 설정을 먼저 수정하세요.

설치한 빌드에서 SHA-1을 추출하세요

설치한 빌드에서 SHA-1을 추출하세요

디버그 또는 로컬 빌드:

터미널 창
cd android && ./gradlew signingReport

서명된 릴리스 APK:

터미널 창
keytool -printcert -jarfile android/app/release/app-release.apk

SHA-1을 Android OAuth 클라이언트에 추가하고 패키지 이름이 일치하는 동일한 서명 APK를 다시 설치한 후 다시 테스트하세요:

터미널 창
adb install android/app/release/app-release.apk

로그인 결과를 읽는 방법

로그인 결과를 읽는 방법

토큰은 다음과 같이 중첩되어 있습니다. result:

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

Firebase Auth의 경우, 다음 인증서를 생성하세요. idToken Web 클라이언트 ID를 사용하세요. webClientId 위의 initialize.

개발자 SHA-1 인증서를 얻을 수 없다면, 커스텀 키스토어를 사용하세요. 이 이슈 댓글은 프로젝트에 키스토어를 추가하는 방법을 설명합니다. Android에서 Google 로그인으로 계속 진행하세요.

로그인 결과를 읽는 방법

구글 로그인 Android에서 계속하기

Google 로그인 Android을 사용 중이라면 Google 로그인 Android 인증 및 계정 흐름을 계획하고 연결하려면 Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-social-login Using @capgo/capacitor-passkey Using @capgo/capacitor-passkey Using @capgo/capacitor-native-biometric Using @capgo/capacitor-native-biometric Using @capgo/capacitor-social-login 두 단계 인증 두 단계 인증 구현 세부 사항에 대한 설명입니다.