增加 reCAPTCHA 会话超时

Increase reCAPTCHA session timeout

我正在使用 Google reCAPTCHA 组件并被要求增加会话超时。我找不到任何解决方案。可以吗?非常感谢。

恐怕没有解决方案,因为 reCAPTCHA 质询是由 Google 提供的,所以会话不是在您的应用程序和用户之间,而是在 reCAPTCHA 服务和用户之间。将 reCAPTCHA 视为多租户 Web 应用程序(其中每个租户都是显示它的站点),每个租户可用的唯一设置是身份验证密钥和应显示的质询类型。

一种解决方案是更改您提交表单的方式。如果可能,将 reCaptcha 提交移动到辅助服务器端页面。这将创造一个全新的条件,可以立即与 Google 互动。

我们在冗长的表单(多个选项卡)上遇到了同样的问题。将表单发布到二次处理页面允许立即处理 reCaptcha,这将解决这个问题。

我经常用这个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>