在 Play 上集成 reCaptcha 2.x Java
Integrating reCaptcha on Play 2.x Java
我正在尝试在我的 java Play 2.4 网络应用程序上实施 reCaptcha。
发送验证码后,我真的不知道如何阅读"g-recaptcha-response"。
不幸的是,我能找到的所有教程都可以玩 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 / g-recaptcha-response
值 API。
@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.4 网络应用程序上实施 reCaptcha。
发送验证码后,我真的不知道如何阅读"g-recaptcha-response"。
不幸的是,我能找到的所有教程都可以玩 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 / g-recaptcha-response
值 API。
@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
}
...
}