사용자 응답 확인

이 페이지에서는 애플리케이션 백엔드에서 reCAPTCHA 챌린지에 대한 사용자의 응답을 확인하는 방법을 설명합니다.

웹 사용자의 경우 다음 세 가지 방법 중 하나로 사용자의 응답 토큰을 가져올 수 있습니다.

  • 사용자가 사이트에서 양식을 제출할 때 g-recaptcha-response POST 매개변수
  • 사용자가 완료한 후 grecaptcha.getResponse(opt_widget_id) reCAPTCHA 테스트
  • 콜백 함수의 문자열 인수로 data-callbackg-recaptcha 태그 속성에 지정되거나 grecaptcha.render 메서드의 콜백 매개변수

Android 라이브러리 사용자의 경우 SafetyNetApi.RecaptchaTokenResult.getTokenResult() 메서드를 사용하여 상태가 성공이 반환되면 응답 토큰을 가져올 수 있습니다.

토큰 제한사항

각 reCAPTCHA 사용자 응답 토큰은 2분 동안 유효하며 다음을 위해 한 번만 확인할 수 있습니다. 재전송 공격을 방지할 수 있습니다 새 토큰이 필요한 경우 reCAPTCHA 인증을 다시 실행하면 됩니다.

응답 토큰을 가져온 후에는 다음 API를 사용하여 2분 이내에 reCAPTCHA로 토큰을 확인하여 토큰이 유효한지 확인해야 합니다.

API 요청

URL: https://www.google.com/recaptcha/api/siteverify

METHOD: POST

POST 매개변수 설명
secret 필수 항목입니다. 사이트와 reCAPTCHA 간에 공유된 키입니다.
response 필수 항목입니다. 사이트의 reCAPTCHA 클라이언트 측 통합에서 제공하는 사용자 응답 토큰입니다.
remoteip 선택사항입니다. 사용자의 IP 주소입니다.

API 응답

응답은 JSON 객체입니다.

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

reCAPTCHA Android의 경우:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

오류 코드 참조

오류 코드 설명
missing-input-secret 보안 비밀 매개변수가 누락되었습니다.
invalid-input-secret 보안 비밀 매개변수가 올바르지 않거나 형식이 잘못되었습니다.
missing-input-response 응답 매개변수가 누락되었습니다.
invalid-input-response 응답 매개변수가 유효하지 않거나 형식이 잘못되었습니다.
bad-request 요청이 잘못되었거나 형식이 잘못되었습니다.
timeout-or-duplicate 응답이 더 이상 유효하지 않습니다. 너무 오래되었거나 이전에 사용된 것입니다.