重新检测失败

时间:2016-06-07 21:46:31

标签: javascript recaptcha

我正在使用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();
    }
}

有没有人有任何建议?我在开发者文档中找不到任何相关内容。

1 个答案:

答案 0 :(得分:0)

您不必对回调函数中的captcha元素执行任何操作。 当验证码正确时,响应对象不为空:

function recaptcha2_success(response) {
    if (response.length > 0){
        alert("success!")
    }
}