0

我需要将 recaptcha v3 与我的 jsp 站点集成。它只是一个登录页面,在单击登录按钮后将数据发送到另一个端点。对于 PoC,我能够在页面上添加 recaptcha 并在页面加载时获取令牌。然后我能够验证它。

我现在想在用户单击登录按钮时获取令牌并验证它。所以我在按钮上添加 onclick 事件并在那里分配我的功能:

function verifyCaptcha() {
        grecaptcha.ready(function() {
            grecaptcha.execute('sitekey', {action: 'submit'}).then(function (token) {
                checkCaptcha(token);
            });
        });
    }

但是在我单击登录后,它不会进入 grecaptcha.ready 函数。我在这里做错了什么?

4

1 回答 1

0

每次页面重新加载时,您都会从 google 获得一个新令牌。您只能使用该令牌一次。不知何故,如果您多次使用该令牌从 google Api 获取响应,您将收到该错误。

诀窍是,您应该通过 ajax 请求(页面加载)将令牌发送到服务器并将令牌保存在服务器变量中。然后,在提交表单时使用该令牌来验证 reCapcha 。

于 2019-04-16T15:26:06.267 回答