我正在使用RecaptchaV2,并将其用作对我的软件进行身份验证的第一步验证。身份验证过程通常如下所示:
输入用户ID>验证recaptcha>执行进一步的身份验证(可配置,例如密码+ 2fa)
理想情况下,我希望能够在执行recpatcha时检测用户失败,并在用户失败次数时执行IP地址或用户ID的临时锁定。但是,似乎Recaptcha没有针对失败案例的回调,只提供了一个成功调用的“数据回调”参数。所有验证似乎都完全封装在小部件中,并且在成功之前,我的代码永远不会被告知验证的状态。
我的代码基本上只是文档中的示例(https://developers.google.com/recaptcha/docs/display#auto_render),还有一些额外的好处,可以在重新填充完成后自动在页面上提交表单。这是粗略的轮廓:
<div style="text-align: center" id="g-recaptcha-container">
<div class="g-recaptcha" data-sitekey="secret-site-key" data-callback="recaptcha2_success" style="display: inline-block"></div>
</div>
我的javascript:
function recaptcha2_success(response) {
var proceed = document.getElementById('g-recaptcha-proceed');
var form = document.getElementsByName('login-form');
// display the loading message
if (proceed !== undefined) {
proceed.style.display = 'block';
}
// submit the main form
if (form.length > 0) {
form[0].submit();
}
}
有没有人有任何建议?我在开发者文档中找不到任何相关内容。
答案 0 :(得分:0)
您不必对回调函数中的captcha元素执行任何操作。 当验证码正确时,响应对象不为空:
function recaptcha2_success(response) {
if (response.length > 0){
alert("success!")
}
}