【问题标题】:How to implement recaptcha in odoo如何在odoo中实现recaptcha
【发布时间】:2019-12-07 19:23:25
【问题描述】:

我们正在为企业在线使用 odoo 12。 我们希望使用 google recaptcha 保护我们的表单。

我们如何实现 google recaptcha?如果可能的话,一个完整的例子如何实现它。

我们更喜欢 recaptcha v3,但如果不可能,v2 实现也可以。

当我尝试在线搜索 google recaptcha 的实现时,几乎每次都会包含一个 .php 文件。我们的页面加载了 QWeb 视图类型,不支持 php。

没有php也可以实现吗?我们绝对可以使用 html 和 javascript 可能还有 python,是否可以只使用这些?如果可能的话,我们希望只使用 javascript 和 html 来实现,但我假设情况并非如此。

还有其他的表单保护我们可以只使用 html 和 javascript 实现吗?

【问题讨论】:

    标签: javascript python html forms recaptcha


    【解决方案1】:

    Python 中的 Google reCAPTCHA v3

    您需要在前端安装 reCAPTCHA 并在后端实现验证。在帖子的底部,我链接了官方的 Google reCAPTCHA 文档。

    前端集成

    <script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
    <script>
    grecaptcha.ready(function() {
        grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
           ...
        });
    });
    </script>
    

    前端只需要:

    1. 使用您的站点密钥加载 JavaScript api
    2. 在操作或页面加载时调用 grecaptcha.execute
    3. 将令牌与验证请求一起发送到您的后端

    后端集成

    令牌的验证与 reCAPTCHA v2 中的相同。当用户在您的站点上提交表单时,您将获得 POST 参数g-recaptcha-response。您需要使用以下参数向 Google reCAPTCHA 服务发出 POST 请求。您可以选择自己的 HTTP 请求框架。

    POST Parameter  Description
    secret          Required. The shared key between your site and reCAPTCHA.
    response        Required. The user response token provided by the reCAPTCHA client-side integration on your site.
    remoteip        Optional. The user's IP address.
    

    然后您会从服务获得 JSON 响应,如果请求失败,您可以在后端处理进一步的操作。

    {
      "success": true|false,
      "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
      "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
      "error-codes": [...]        // optional
    }
    

    来源

    【讨论】:

      【解决方案2】:

      希望this 会有所帮助,您可以从 odoo 论坛获得想法。

      【讨论】:

        猜你喜欢
        • 2019-05-04
        • 2020-10-24
        • 2020-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多