我使用了Google reCAPTCHA组件,并被要求增加会话超时。我无法找到任何解决方案。可以吗?非常感谢。
答案 0 :(得分:6)
我担心没有解决方案,因为reCAPTCHA挑战是由Google提供的,因此会话不在您的应用和用户之间,而是在reCAPTCHA服务和用户之间。将reCAPTCHA视为多租户Web应用程序(每个租户都是显示它的站点),每个租户可用的唯一设置是身份验证密钥和应显示的质询类型。
答案 1 :(得分:0)
一种解决方案是更改提交表单的方式。如果可能,将reCaptcha提交移至辅助服务器端页面。这将为立即与Google互动创造新的条件。
在冗长的表单(多个标签)上,我们遇到了同样的问题。将表单发布到辅助处理页面上可以立即处理reCaptcha,这将解决此问题。
答案 2 :(得分:0)
我通常使用此javascript
<script>
function reload_recaptcha(grecaptcha) {
grecaptcha.execute('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', { action: 'homepage' }).then(function (token) {
console.log("TOKEN: [" + token + "]");
var inputF = document.getElementById("retoken");
inputF.setAttribute("value", token);
});
}
function reload_recaptcha_wrapper() {
reload_recaptcha(document.grecaptcha);
setTimeout(reload_recaptcha_wrapper, 45000);
}
grecaptcha.ready(function () {
document.grecaptcha = grecaptcha;
reload_recaptcha(document.grecaptcha);
});
setTimeout(reload_recaptcha_wrapper, 45000);
</script>