我需要将recaptcha v3与我的jsp站点集成在一起。这只是一个登录页面,单击“登录”按钮后,该页面会将数据发送到另一个端点。对于PoC,我能够在页面上添加Recaptcha并在页面加载时获取令牌。然后,我能够对其进行验证。
我现在想在用户单击“登录”按钮时获取令牌并对其进行验证。因此,我在按钮上添加了onclick事件并在其中分配我的功能:
function verifyCaptcha() {
grecaptcha.ready(function() {
grecaptcha.execute('sitekey', {action: 'submit'}).then(function (token) {
checkCaptcha(token);
});
});
}
但是,单击“登录”后,它不会进入grecaptcha.ready函数。 我在这里做错了什么?
答案 0 :(得分:0)
每次页面重新加载时,您都会从google获得一个新令牌。您只能使用该令牌一次。不知何故,如果您多次使用该令牌来获取google Api的响应,则会收到该错误。
诀窍是,您应该通过ajax请求(页面加载)将令牌发送到服务器,并将令牌保存在服务器变量中。然后,在提交表单时,使用该令牌来验证reCapcha。