Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Wook No.1

구글 SafetyNet reCAPTCHA API(Android) 사용 본문

Android

구글 SafetyNet reCAPTCHA API(Android) 사용

Wook No.1 2022. 4. 19. 17:24

로그인 / 인증 사용을 할때 반복적인 API 요청을 막거나 휴먼 확인을 위해 reCAPTCHA를 사용한다.

 

reCAPTCHA 사이트 등록 

https://www.google.com/recaptcha/admin

리캡챠(reCAPTCHA) 가입을 진행
공개키와 비밀키만 확인하면 정상적으로 진행이 완료

 

 

SafetyNet API 종속성 추가하기

    apply plugin: 'com.android.application'
    ...
    dependencies {
        compile 'com.google.android.gms:play-services-safetynet:17.0.0'
    }

 

reCAPTCHA API 사용하기

SafetyNet.getClient(this).verifyWithRecaptcha(YOUR_API_SITE_KEY)
    .addOnSuccessListener(this as Executor, OnSuccessListener { response ->
        // Indicates communication with reCAPTCHA service was
        // successful.
        val userResponseToken = response.tokenResult
        if (response.tokenResult?.isNotEmpty() == true) {
            // Validate the user response token using the
            // reCAPTCHA siteverify API.
        }
    })
    .addOnFailureListener(this as Executor, OnFailureListener { e ->
        if (e is ApiException) {
            // An error occurred when communicating with the
            // reCAPTCHA service. Refer to the status code to
            // handle the error appropriately.
            Log.d(TAG, "Error: ${CommonStatusCodes.getStatusCodeString(e.statusCode)}")
        } else {
            // A different, unknown type of error occurred.
            Log.d(TAG, "Error: ${e.message}")
        }
    })

 

통신 오류 상태코드

RECAPTCHA_INVALID_SITEKEY

사이트 키가 잘못되었습니다. API를 호출할 때 API 키를 등록했는지 그리고 사이트 키를 올바르게 매개변수로 복사했는지 확인하세요.

상수 값: 12007

 

RECAPTCHA_INVALID_KEYTYPE

사이트 키의 유형이 잘못되었습니다. reCAPTCHA Android 가입 사이트로 이동하여 새 사이트 키를 만드세요.

상수 값: 12008

 

RECAPTCHA_INVALID_PACKAGE_NAME

호출 앱의 패키지 이름이 사이트 키와 연결한 이름과 일치하지 않습니다. reCAPTCHA 관리 콘솔에서 호출 앱의 패키지 이름을 사이트 키에 추가하거나 사이트 키의 패키지 이름 검증을 사용 중지하세요.

상수 값: 12013

 

UNSUPPORTED_SDK_VERSION

API가 기기의 Android SDK 버전에서 지원되지 않습니다. 새 Android SDK 버전으로 업그레이드한 다음 다시 API와 통신해 보세요.

상수 값: 12006

 

TIMEOUT

API가 응답을 대기할 때 세션이 타임아웃되었습니다. 사용자가 보안문자와 상호작용하지 않았기 때문이거나 보안문자 로드 프로세스 자체가 타임아웃되었기 때문입니다. 사용자가 다시 API를 호출하도록 대기하세요. 기다리는 동안 사용자에게 보안문자를 완료해야 계속 앱을 사용할 수 있다는 것을 알릴 수 있습니다.

상수 값: 15

 

NETWORK_ERROR

인터넷에 연결되지 않았습니다. 연결을 확인한 후 다시 API와 통신하세요.

상수 값: 7

 

ERROR

작업에서 일반적인 실패가 발생했습니다.

상수 값: 13

 

 

reCAPTCHA API가 반환할 수 있는 상태 코드

https://developers.google.com/android/reference/com/google/android/gms/safetynet/SafetyNetStatusCodes?hl=ko 

'Android' 카테고리의 다른 글

RecyclerView 무한 스크롤  (0) 2022.05.10
CameraX 카메라앱 개발하기  (0) 2022.04.27
Gradle JDK 변경  (0) 2022.04.04
androidx.core:core-ktx:1.6.0 이슈  (0) 2022.02.03
Installed Build Tools revision 31.0.0 is corrupted.  (0) 2022.02.03
Comments