friendsoforo / oro-recaptcha-bundle
Oro Bundle,用于将 ReCAPTCHA 注入公共表单
v5.1.0
2023-04-30 23:45 UTC
Requires
- excelwebzone/recaptcha-bundle: ^1.5
- oro/platform: 5.1.*
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 平台版本的支持。
安装和使用
注意:根据您的本地环境调整说明
- 通过 Composer 安装
composer require friendsoforo/oro-recaptcha-bundle
- 更新您的 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.
- 清除 Oro 缓存
php bin/console cache:clear --env=prod
- 登录到 Oro Admin
- 导航到 系统配置 => 集成 => ReCAPTCHA
- 配置 ReCAPTCHA 小部件并启用/禁用受保护功能
- 保存配置并验证它现在是否已出现在前端网站上
开发中测试
将 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 仅用于测试目的。如果您看到此内容,请向网站管理员报告。 "
添加到新的表单类型
- 创建一个新的表单类型扩展,该扩展继承自
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; } }
- 通过
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 文件