2
我正在使用RecaptchaV2,並將其用作對我的軟件進行身份驗證的第一步驗證。認證過程通常如下所示:失敗的recaptcha檢測
輸入用戶ID>驗證驗證碼>執行進一步的驗證(可配置的,例如密碼時應+ 2FA)
理想情況下,我會執行recpatcha當希望能夠檢測用戶失敗,並且當用戶失敗次數過多時,執行IP地址或用戶ID的臨時鎖定。但是,似乎Recaptcha沒有對失敗情況進行回調,並且只提供成功時調用的「數據回調」參數。所有驗證似乎都完全封裝在窗口小部件中,並且我的代碼在成功之前從未被通知驗證的狀態。
我的代碼基本上只是文檔中的示例(https://developers.google.com/recaptcha/docs/display#auto_render),並且有一些額外的功能可以在recaptcha完成時自動提交頁面上的表單。這裏的粗線條:
<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();
}
}
有沒有人有什麼建議?我在開發者文檔中找不到任何相關內容。
[?谷歌ReCAPTCHA技術如何使所需的(可能的重複http://stackoverflow.com/questions/29612879/google-recaptcha-how-to- make-required) – colecmc
在這裏看到我的答案,它可能會幫助你。 http://stackoverflow.com/a/37733209/5190589 – Ryan89
感謝您花時間回覆,colecmc和Ryan89。鏈接的提交實際上與我想要的相反。表單本身僅包含** reCaptcha小部件。一旦用戶與小部件進行了交互,表單就會自動提交。問題是reCaptcha小部件只在_successful_驗證時調用我的Javascript,而不是在_failure_上。這可以防止我能夠檢測到故障並執行鎖定。 –