Bu sayfada, kullanıcının reCAPTCHA isteğine verdiği yanıtın uygulamanızın arka ucundan nasıl doğrulanacağı açıklanmaktadır.
Web kullanıcıları için kullanıcının yanıt jetonunu üç şekilde alabilirsiniz:
g-recaptcha-response
Kullanıcı sitenizdeki formu gönderdiğinde POST parametresi- Kullanıcı tamamladıktan sonra
grecaptcha.getResponse(opt_widget_id)
reCAPTCHA testi - Geri çağırma işlevinizin dize bağımsız değişkeni olarak
g-recaptcha
etiketi özelliğindedata-callback
belirtilmişsegrecaptcha.render
yöntemindeki geri çağırma parametresi
Android kitaplığı kullanıcıları, durum başarılı olarak döndürülürse yanıt jetonunu almak için SafetyNetApi.RecaptchaTokenResult.getTokenResult() yöntemini çağırabilir.
Jeton Kısıtlamaları
Her reCAPTCHA kullanıcı yanıtı jetonu iki dakika boyunca geçerlidir ve yeniden oynatma 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, iki dakika içinde bunu reCAPTCHA ile doğrulamanız gerekir: aşağıdaki API'yi kullanarak jetonun geçerli olduğundan emin olun.
API İsteği
URL: https://www.google.com/recaptcha/api/siteverify
YÖNTEM: POST
POST Parametresi | Açıklama |
---|---|
secret |
Zorunlu. Siteniz ile reCAPTCHA arasında paylaşılan anahtar. |
response |
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 şeklindedir:
{
"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 |
---|---|
missing-input-secret |
Gizli anahtar parametresi eksik. |
invalid-input-secret |
Gizli anahtar parametresi geçersiz veya hatalı biçimlendirilmiş. |
missing-input-response |
Yanıt parametresi eksik. |
invalid-input-response |
Yanıt parametresi geçersiz veya hatalı biçimlendirilmiş. |
bad-request |
İstek geçersiz veya hatalı biçimlendirilmiş. |
timeout-or-duplicate |
Yanıt artık geçerli değil: Çok eski veya daha önce kullanılmış. |