2016-03-09 33 views
0

我正試圖在我的java Play 2.4 web應用上實現reCaptcha。在Play 2.x Java上集成reCaptcha

我真的不知道如何在驗證碼發送後閱讀「g-recaptcha-response」。

不幸的是,我可以找到所有的教程來玩2.x只有斯卡拉。

有人可以幫我嗎?

+0

您可以展示一下您到目前爲止嘗試過的代碼示例嗎? –

回答

3

在你的模板,你可以在一個隱藏的表單字段設置g-recaptcha-response

<div class="g-recaptcha" data-sitekey="your_site_key" data-callback="captchaCallback"></div> 
<input type="hidden" name="recaptcha" id="recaptcha" /> 

<script> 
    function captchaCallback() { 
    document.getElementById("recaptcha").value = document.getElementById("g-recaptcha-response").value; 
    } 
</script> 

在您的表單驗證,你需要通過valdiate要求的reCAPTCHA API recaptcha/g-recaptcha-response值。

@Constraints.Required() 
private String recapatcha; 

private List<ValidationError> validate() { 
    ... 
    final JsonNode response = WS.url("recaptcha-verify-endpoint").setQueryParameter("secret", "your secret").setQueryParameter("response", this.recaptcha).post("").get(5000L).asJson(); 

    if(!response.get("success").booleanValue() && response.has("error-codes"){ 
    //TODO: Add error according to recaptcha error code 
    } 
    ... 
} 
+0

謝謝!我不知道數據回調 –