Bu sayfada, uygulamanızın reCAPTCHA arka ucundaki yanıtının nasıl doğrulanacağı açıklanmaktadır.
Web kullanıcıları için, kullanıcının yanıt jetonunu üç yöntemden birini kullanarak edinebilirsiniz:
- Kullanıcı formu forma gönderdiğinde
g-recaptcha-response
POST parametresi - Kullanıcı reCAPTCHA testini tamamladıktan
grecaptcha.getResponse(opt_widget_id)
sonra grecaptcha.render
işlevinde veyag-recaptcha
geri çağırma parametresindedata-callback
belirtilmişse callback işleviniz için dize bağımsız değişkeni olarak
Android kitaplığı kullanıcıları, 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 süreyle geçerlidir ve tekrarlama 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 aşağıdaki API'yi kullanarak reCAPTCHA'yı iki dakika içinde 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 ve reCAPTCHA arasında paylaşılan anahtar. |
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 nesnesidir:
{
"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 parametre eksik. |
geçersiz-giriş-gizliliği | Gizli anahtar parametresi geçersiz veya hatalı biçimlendirilmiş. |
eksik-yanıt-yanıt | Yanıt parametresi eksik. |
geçersiz-giriş-yanıt | Yanıt parametresi geçersiz veya bozuk. |
hatalı istek | İstek geçersiz veya hatalı biçimlendirilmiş. |
zaman aşımı veya kopya | Yanıt artık geçerli değil: Çok eski veya daha önce kullanılmış. |