我正在尝试在我的 java Play 2.4 Web 应用程序上实现 reCaptcha。
我真的不知道如何读取验证码发送后的“g-recaptcha-response”。
不幸的是,我能找到的所有关于 play 2.x 的教程都只适用于 scala。
有人可以帮我吗?
最佳答案
在模板中,您可以在隐藏表单字段中设置 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>
在表单验证中,您需要通过请求 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
}
...
}
关于java - 在 Play 2.x Java 上集成 reCaptcha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889313/