Kullanıcının yanıtını doğrulama

Bu sayfada, bir kullanıcının, uygulamanızın arka ucundan reCAPTCHA sorgulamasına yanıtını nasıl doğrulayacağınız açıklanmaktadır.

Web kullanıcıları, kullanıcının yanıt jetonunu şu üç yöntemden biriyle alabilirsiniz:

  • g-recaptcha-response: Kullanıcı, sitenizdeki formu gönderdiğinde POST parametresi
  • Kullanıcı reCAPTCHA testini tamamladıktan sonra grecaptcha.getResponse(opt_widget_id)
  • g-recaptcha etiketi özelliğinde veya grecaptcha.render yöntemindeki geri çağırma parametresinde data-callback belirtilmişse callback işlevinizin dize bağımsız değişkeni olarak

Android kitaplık kullanıcıları için, durum başarılı olursa yanıt jetonu almak için SafetyNetApi.RecaptchaTokenResult.getTokenResult() yöntemini çağırabilirsiniz.

Jeton Kısıtlamaları

Her reCAPTCHA kullanıcı yanıt jetonu iki dakika boyunca geçerlidir ve tekrar saldırılarını önlemek için yalnızca bir kez doğrulanabilir. Yeni bir jetona ihtiyacınız varsa reCAPTCHA doğrulamasını yeniden çalıştırabilirsiniz.

Yanıt jetonunu aldıktan sonra, jetonun geçerli olduğundan emin olmak için iki dakika içinde aşağıdaki API'yi kullanarak reCAPTCHA ile jetonu doğrulamanız gerekir.

API İsteği

URL: https://www.google.com/recaptcha/api/siteverify YÖNTEM: POST

POST Parametresi Açıklama
gizli anahtar Zorunlu. Siteniz ile reCAPTCHA arasında paylaşılan anahtardır.
yanıt Zorunlu. Sitenizdeki reCAPTCHA istemci tarafı entegrasyonu tarafından sağlanan kullanıcı yanıt jetonu.
Remoteip İsteğe bağlı. Kullanıcının IP adresi.

API Yanıtı

Yanıt bir JSON nesnesi olur:

{
  "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 için:

{
  "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
}

Hata kodu referansı

Hata kodu Açıklama
eksik-giriş-gizli Gizli anahtar parametresi eksik.
geçersiz-giriş-gizli Gizli anahtar parametresi geçersiz veya hatalı biçimlendirilmiş.
eksik-giriş-yanıtı Yanıt parametresi eksik.
geçersiz-giriş-yanıtı Yanıt parametresi geçersiz veya hatalı biçimlendirilmiş.
hatalı istek İstek geçersiz veya hatalı biçimlendirilmiş.
zaman aşımı veya yineleme Yanıt artık geçerli değil: ya çok eski ya da daha önce kullanılmış.