friendsoforo/oro-recaptcha-bundle

Oro Bundle,用于将 ReCAPTCHA 注入公共表单

v5.1.0 2023-04-30 23:45 UTC

This package is auto-updated.

Last update: 2024-08-30 01:32:11 UTC


README

此包为各种 Oro 功能添加了 Google ReCAPTCHA 保护。

目前可以受保护的特性包括

  • 注册表单
  • 联系我们表单

扩展了 excelwebzone 的 EWZRecaptchaBundle

要求

此包支持以下 Oro 平台版本

  • Oro 平台 v3.x

    • 对该版本的支持位于 "v3.x" 分支
  • Oro 平台 v4.1.x

    • 对该版本的支持位于 "v4.1.x" 分支
  • Oro 平台 v4.2.x

    • 对该版本的支持位于 "v4.2.x" 分支
  • Oro 平台 v5.x

    • 对该版本的支持位于 "v5.x" 分支

主分支始终跟踪最新发布的 Oro 平台版本的支持。

安装和使用

注意:根据您的本地环境调整说明

  1. 通过 Composer 安装
    composer require friendsoforo/oro-recaptcha-bundle
  2. 更新您的 config.yml
    # app/config/config.yml
    
    ewz_recaptcha:
        public_key:  here_is_your_public_key
        private_key: here_is_your_private_key
    
        # Not needed as "%kernel.default_locale%" is the default value for the locale key
        # locale_key:  %kernel.default_locale%
    
        # etc. Refer to the ewz_recaptcha package for more information.
  3. 清除 Oro 缓存
    php bin/console cache:clear --env=prod
  4. 登录到 Oro Admin
  5. 导航到 系统配置 => 集成 => ReCAPTCHA
  6. 配置 ReCAPTCHA 小部件并启用/禁用受保护功能
  7. 保存配置并验证它现在是否已出现在前端网站上

开发中测试

config.yml 中的值复制到 config_dev.yml,并将公共/私有密钥替换为 Google 提供的测试密钥:[https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha-what-should-i-do](https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha-what-should-i-do)

小部件应在表单上渲染,但将被文本覆盖

"此 reCAPTCHA 仅用于测试目的。如果您看到此内容,请向网站管理员报告。 "

添加到新的表单类型

  1. 创建一个新的表单类型扩展,该扩展继承自 HackOro\RecaptchaBundle\Form\Extension\AbstractRecaptchaTypeExtension
    <?php
    namespace Acme\CustomBundle\Form\Extension;
    
    use Acme\CustomBundle\Form\Type\CustomPageType;
    
    class CustomPageTypeExtension extends AbstractRecaptchaTypeExtension
    {
        public function getExtendedType()
        {
            // The Form Type we are extending
            return CustomPageType::class;
        }
    
        /**
         * Protect the Custom Page Form?
         * @return boolean
         */
        public function isProtected()
        {
            // Replace this with a configuration option if needed
            return true;
        }
    }
  2. 通过 services.yml 注册表单类型扩展
    hack_oro_recaptcha.form.registration_form_type_extension:
        class: Acme\CustomBundle\Form\Extension\CustomPageTypeExtension
        calls:
            - [setConfigManager, ['@oro_config.user']]
        tags:
            - { name: form.type_extension, extended_type: Acme\CustomBundle\Form\Type\CustomPageType }

路线图/剩余任务

  • 添加对 "隐式" ReCAPTCHA v2 的支持
  • 添加对 ReCAPTCHA v3 的支持
  • 添加按特性定制 ReCAPTCHA v3 分数阈值的能力
  • 添加通过 Oro 配置设置公共/私有密钥的能力,而不是 YAML 文件

许可

MIT - MIT 许可证