Wook No.1
구글 SafetyNet reCAPTCHA API(Android) 사용 본문
로그인 / 인증 사용을 할때 반복적인 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가 반환할 수 있는 상태 코드
'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 |