사용자 응답 확인하기

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

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

  • g-recaptcha-response POST 매개변수 - 사용자가 사이트에서 양식을 제출할 때
  • grecaptcha.getResponse(opt_widget_id): 사용자가 reCAPTCHA 챌린지를 완료한 후
  • g-recaptcha 태그의 속성 또는 grecaptcha.render 메서드의 콜백 매개변수에 data-callback가 지정된 경우 콜백 함수에 대한 문자열 인수

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

토큰 제한사항

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

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

API 요청

URL: https://www.google.com/recaptcha/api/siteverify 방법: POST

POST 매개변수 설명
보안 비밀 필수 항목입니다. 사이트와 reCAPTCHA 간의 공유 키입니다.
응답 수 필수 항목입니다. 사이트의 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
}

오류 코드 참조

오류 코드 설명
누락된 입력-비밀 비밀번호 매개변수가 누락되었습니다.
잘못된 입력 비밀번호 보안 비밀 매개변수가 올바르지 않거나 형식이 잘못되었습니다.
누락-입력-응답 응답 매개변수가 누락되었습니다.
잘못된 입력-응답 응답 매개변수가 잘못되었거나 형식이 올바르지 않습니다.
잘못된 요청 요청이 잘못되었거나 형식이 올바르지 않습니다.
시간 초과 또는 중복 응답이 더 이상 유효하지 않습니다. 너무 오래되었거나 이전에 사용된 적이 있습니다.