내용으로 건너뛰기

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

Social Login GitHub 저장소

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

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

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

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

      Google 콘솔 검색 바
    2. 검색하세요. credentials 그것을 클릭하세요. APIs and Services 스크린샷의 두 번째 항목 (번호 2)

      API 및 서비스가 강조된 자격 증명 옵션을 보여주는 검색 결과
    3. 그것을 클릭하세요. create credentials

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

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

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

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

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

      __CAPGO_KEEP_0__
    9. Google 로그인 플러그인 android.defaultConfig.applicationId이 값을 복사하세요. package name 이 값은 Google 콘솔에서 사용됩니다.

      Google 콘솔에서 applicationId를 설정하는 Build.gradle 파일
    10. Build.gradle 파일을 열어보세요. android 터미널을 열어보세요. 현재 폴더가 앱 폴더인지 확인하세요. ./gradlew signInReport

    터미널에서 gradlew signInReport 명령어를 실행하세요.
    1. 이 명령어의 맨 위로 스크롤을 내보세요. SHA1.
    SHA1 인증서 지문이 보이시나요? 이 값을 복사하세요.
    1. Google 콘솔로 돌아가보세요. applicationId 이메일 주소 Package Name 인증서 create
    Android 앱 클라이언트 생성 폼에 패키지 이름 및 SHA1 필드가 입력되어 있습니다.
  2. Android용 웹 클라이언트를 생성하세요 (이것은 Android용으로 필요합니다).

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

    2. Google Console에서 Web

      선택하세요.
    3. 선택된 Web 옵션을 강조합니다. Create

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

      클라이언트 ID 세부 정보가 표시되어 Web 클라이언트 ID를 복사할 수 있습니다.
  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. 앱플로우와 카프고의 차이점을 비교할 때, 카프고의 초기화 함수를 호출합니다. SocialLogin.login. 버튼을 만들고 클릭 시 code를 실행합니다.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. 플러스 버튼을 클릭하세요

    1. Android Studio의 디바이스 매니저에서 플러스 버튼이 강조된 상태로 Device manager 가상 디바이스를 생성하세요

      가상 디바이스 구성에서 가상 디바이스 생성 버튼
    2. 어떤 디바이스라도 선택하세요

      __CAPGO_KEEP_0__
    3. __CAPGO_KEEP_0__ 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

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

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

    안드로이드에서 구글 로그인 흐름의 데모를 보여주는 시그인 프로세스와 인증 성공

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

안드로이드에서 이 플러그인은 구글 인증 관리자 (‘구글에 로그인’과 함께)를 사용합니다. (legacy)androidx.credentials 로그캣 오류와 같은 __CAPGO_KEEP_0__ GoogleSignInClient API GetCredentialCustomException: [28444] Developer console is not set up correctly 그것에서 오는 것입니다.

로그캣 필터링 GoogleProvider 또는 CapgoSocialLogin Capacitor 라이브 업데이트 대안 비교 페이지에서 HTML 텍스트 조각입니다. (부모 키 `alternatives_cta_questions`). 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 장기 마케팅 또는 법률 문단. 본문 키 `alternatives_cta_questions` (대안 CTA 질문). | Appflow 비교/이동 마케팅 복사본. 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 장기 마케팅 또는 법률 문단. 본문 키 `appflow_cta_questions` (Appflow CTA 질문). | Capawesome 비교 페이지. 페이지/영역: Capawesome 비교 페이지. 역할: 장기 마케팅 또는 법률 문단. 본문 키 `capwesome_cta_questions` (Capwesome CTA 질문). | HTML 텍스트 조각. 페이지/영역: 컨설팅 서비스 페이지. 역할: 섹션 서브 타이틀 또는 태그 라인. 본문 키 `consulting_faq_subtitle` (컨설팅 FAQ 서브 타이틀). | Appflow 비교/이동 마케팅 복사본. 페이지/영역: Appflow 비교/이동 마케팅 복사본, Appflow Enterprise 플러그인 페이지, 솔루션/ Appflow Enterprise 플러그인 페이지. 본문 키 `appflow_plugins_or` (Appflow 플러그인 또는). webClientId 로그인 실패 후에. 플러그인은 패키지 이름, 서명 SHA-1, 그리고 가려진

그것들을 Google Cloud Console에서 비교할 수 있도록 하기 위해.

Google Cloud 설정이 필요합니다.

구성 요소 제목: ‘Google Cloud 설정이 필요합니다.’

Google Cloud 프로젝트에서 두 가지 종류의 OAuth 2.0 클라이언트 ID가 필요합니다:클라이언트 유형사용되는 곳
위치서버 / ID 토큰 청중webClientId in SocialLogin.initialize()
안드로이드, 한 개당 서명 키당Google이 당신의 APK가 Google을 호출할 수 있는지를 증명한다.Google Cloud Console에서만. 이 ID를 webClientId

A 일반적인 실수는 Android 클라이언트 ID를 webClientId에서 사용하는 것입니다. Credential Manager는 Web 클라이언트 ID가 필요합니다. Android 클라이언트는 단지 콘솔에 등록된 올바른 패키지 이름과 SHA-1만 필요합니다.

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

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

Google Android OAuth 인증 클라이언트 패키지 이름이 반드시 정확히 일치해야 합니다. 패키지 이름에 포함된任何 접미사도 포함해야 합니다. applicationId 테스트 모드인 OAuth 동의 화면이 있는 경우, 사용자 > 테스트 사용자에서 테스트하는 모든 Google 계정을 추가하세요. 앱을 프로덕션으로 출시하는 것은 필수적이지 않습니다. android/app/build.gradle 페이지/영역: Capgo 마케팅 웹사이트. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 위치: trust.astro 페이지. 메시지 키 `and` (And). .debug Google Cloud의 변경 사항은 몇 시간이 걸릴 수 있습니다.

오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다. email 제목: 오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다. profile 설치된 APK 서명 인증서, 패키지 이름, 및 Google이 거부한 combination이 거의 항상 의미합니다.assetlinks.json페이지/영역: Capgo 마케팅 웹사이트. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 위치: trust.astro 페이지. 메시지 키 `and` (And).

Google Android OAuth 인증 클라이언트 패키지 이름이 반드시 정확히 일치해야 합니다. 패키지 이름에 포함된任何 접미사도 포함해야 합니다.

Google Cloud의 변경 사항은 몇 시간이 걸릴 수 있습니다.

오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다.

제목: 오류 28444: 개발자 콘솔이 올바르게 설정되지 않았습니다. webClientId. 앱을 개발하는 데 필요한 사항을 확인하세요:

  1. 확인 webClientId 은 웹 애플리케이션 클라이언트 ID로 끝나며 .apps.googleusercontent.com.
  2. 앱을 실행하고 실패를 재현한 후 Logcat을 읽어보세요. GoogleProvider, signingSha1=, 그리고 package=.
  3. Google Cloud Console > Credentials 에서 앱을 열고 정확한 패키지 이름과 SHA-1을 확인하세요.릴리스 빌드를 테스트하는 경우, 디버그 키 스토어만 등록하는 것이 아니라 릴리스 빌드의 SHA-1을 등록하세요.
  4. Play Store를 통해 앱을 배포하는 경우, 또한 Play App Signing SHA-1을 등록하세요.
  5. 웹 애플리케이션과 안드로이드 클라이언트가 동일한 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;

파이어베이스 인증의 경우, 해당 키와 함께 자격 증명을 생성하세요. idToken 웹 클라이언트 ID를 사용하세요. webClientId 만약 개발 SHA-1 인증서를 얻을 수 없다면, 커스텀 키 스토어를 사용하세요. initialize.

이 이슈 댓글 프로젝트에 키 스토어를 추가하는 방법에 대한 설명입니다. Google Android 로그인에서 계속 진행하세요.

Keep going from Google Login on Android

Android에서 Google 로그인 계속하기

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 두 단계 인증 두 단계 인증 구현에 대한 구체적인 정보입니다.