안드로이드에서 구글 로그인
이 설정 프롬프트를 복사하여 설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함합니다.
이 가이드에서, Google 로그인을 Capgo Android용 Social Login에 설정하는 방법을 배웁니다. 이미 일반 설정 가이드를 읽었다고 가정합니다. Android에서 Google 로그인 사용하기.
일반 설정 가이드
안드로이드에서 Google 로그인 사용하기이 부분에서, Android에서 Google 로그인을 설정하는 방법을 배울 것입니다.
-
Android 클라이언트 ID를 생성하세요.
-
검색 바를 클릭하세요.
-
검색어를 입력하세요.
credentials그리고APIs and Services1번 스크린샷에 표시된 2번을 클릭하세요.
-
클릭하세요.
create credentials
-
선택
OAuth client ID
-
선택한
Android응용 프로그램 유형
-
Android Studio 열기
-
네비게이터의 가장 아래 부분에서 Gradle Scripts 섹션을 찾기
Gradle Scripts
-
모듈
build.gradlebuild.gradle (Module: app) 파일 찾기app
-
Copy the
android.defaultConfig.applicationId이것은 Google 콘솔에서 사용할package nameGoogle 콘솔에
-
터미널을 열어보세요. 앱 폴더에 있는지 확인하세요. 그리고 다음 명령어를 실행하세요
android터미널에 gradlew signInReport 명령어를 실행한 결과./gradlew signInReport
- SHA1 인증서 지문이 표시된 터미널 출력
SHA1.
- 프로젝트 ID를
applicationIdSHA1 인증서 지문을Package Name인증서 필드에 입력하고 클릭하세요create
-
-
웹 클라이언트를 생성하세요 (이것은 Android를 위해 필요합니다).
-
Google Console의
Create credentials페이지로 이동하세요. -
설정하세요.
Web
-
클릭하세요.
Create
-
클라이언트 ID를 복사하세요, 이 값을 JS/TS __CAPGO_KEEP_0__에서 사용합니다.
webClientIdin your JS/TS code
-
-
웹 클라이언트를 생성하세요 (이것은 Android를 위해 필요합니다).
MainActivity-
Android Studio에서 앱을 열어 주세요. 실행할 수 있습니다.
cap open android -
찾아보기
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() {}} -
파일을 저장
-
-
Google 로그인을 애플리케이션에 사용하세요
-
먼저 import를 합니다
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
초기화 함수를 호출하세요. 이 함수는 한 번만 호출해야 합니다.
// 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',}})}) -
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 responseconsole.log(JSON.stringify(res))
-
-
에뮬레이터로 들어가십시오.
-
플러스 버튼을 클릭하십시오.
Device managerAndroid Studio의 Device Manager에서 플러스 버튼이 강조되어 있습니다.
-
가상 장치 구성에서 가상 장치 생성 버튼을 클릭하십시오.
-
어떤 장치를 선택하십시오.
Play Storeicon
보시다시피,
pixel 8지원합니다Play Store서비스 -
클릭
next
-
OS 이미지가
Google Play. IT MUST 유형Google Play
-
다음 단계
-
장치 확인을 위해, 에뮬레이터에 이름을 붙일 수 있습니다.
-
입장
Device Manager시뮬레이터를 부팅하세요
-
시뮬레이터가 부팅되면, 설정으로 들어가세요
-
입장
Google Play
- 클릭
Update약 60초 동안 기다려 주세요
-
-
애플리케이션을 테스트하세요.
모든 것을 올바르게 수행했으면 구글 로그인 흐름이 정상적으로 작동되어야 합니다:
문제 해결
문제 해결문제가 발생한 경우, 구글 클라우드 콘솔의 앱 구성과 값을 비교하세요. 안드로이드 구글 로그인 실패는 일반적으로 패키지 이름, 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 설정이 필요합니다.
Google Cloud 설정이 필요합니다.
Google Cloud 프로젝트에서 두 가지 종류의 OAuth 2.0 클라이언트 ID가 필요합니다:유형
| 사용 | 위치 | 웹 애플리케이션 |
|---|---|---|
| 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 correctlySection titled “Error 28444: Developer console is not set up correctly” webClientId. 이 체크리스트를 따라해 주세요:
- 확인
webClientIdWeb 애플리케이션 클라이언트 ID가 맞고 끝에.apps.googleusercontent.com. - 앱을 실행하고 실패를 재현한 후 Logcat을 읽어보세요.
GoogleProvider,signingSha1=, 그리고package=. - Google Cloud Console > Credentials , Android OAuth 클라이언트를 열고 정확한 패키지 이름과 SHA-1을 확인하세요.릴리즈 빌드를 테스트하는 경우, 디버그 키 스토어에서만 SHA-1을 등록하지 마세요.
- 릴리즈 빌드를 통해 배포하는 앱의 경우, 또한 Play App Signing SHA-1을 등록하세요.
- Web과 Android 클라이언트가 동일한 Google Cloud 프로젝트에 존재하는지 확인하세요.
- consent 화면이 테스트 모드일 경우, Google 계정이 테스트 사용자인지 확인하세요.
- __CAPGO_KEEP_0__
- 재시도 후 콘솔 변경
USER_CANCELLED 구성 오류로 인해 디버그 빌드에서 계정을 선택한 후에도 SHA-1 또는 클라이언트 ID 불일치가 발생할 수 있습니다. 위의 콘솔 설정을 먼저 수정하세요.
설치한 빌드에서 SHA-1을 추출하세요
설치한 빌드에서 SHA-1을 추출하세요디버그 또는 로컬 빌드:
cd android && ./gradlew signingReport서명된 릴리스 APK:
keytool -printcert -jarfile android/app/release/app-release.apkSHA-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 두 단계 인증 두 단계 인증 구현 세부 사항에 대한 설명입니다.