【问题标题】:Increase reCAPTCHA session timeout增加 reCAPTCHA 会话超时
【发布时间】:2020-02-10 15:51:21
【问题描述】:

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

【问题讨论】:

标签: security recaptcha


【解决方案1】:

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

【讨论】:

  • 谢谢你帮助我调查。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 如何避免我在使用此 javascript 代码时遇到的错误未捕获的错误:无效的站点密钥或未在 api.js 中加载:
    • 这是 v2 还是 v3?
    猜你喜欢
    • 2012-01-29
    • 2019-09-27
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2018-06-20
    • 2011-01-22
    • 2016-09-21
    相关资源
    最近更新 更多