andanteproject/recaptcha-bundle

一个易于将 Google reCAPTCHA 集成到 Symfony 表单的 Symfony 扩展包

安装: 837

依赖: 0

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.1.2 2021-12-17 09:37 UTC

This package is auto-updated.

Last update: 2024-09-17 15:54:30 UTC


README

Andante Project Logo

Google ReCAPTCHA 扩展包

Symfony 扩展包 - AndanteProject

Latest Version Github actions Framework Php7 PhpStan

一个将 Google reCAPTCHA 集成到 Symfony 表单 的 Symfony 扩展包。

需求

Symfony 4.x-6.x 和 PHP 7.4-8.x。

安装

通过 Composer

$ composer require andanteproject/recaptcha-bundle

功能

安装

安装后,请确保您已将此扩展包注册到您的 symfony 扩展包列表中(config/bundles.php

return [
    /// bundles...
    Andante\ReCaptchaBundle\AndanteReCaptchaBundle::class => ['all' => true],
    /// bundles...
];

如果您使用的是 Symfony Flex,则这应该会自动完成。否则,请自行注册。

配置

创建一个新的 andante_re_captcha.yaml 配置文件,并设置 Google ReCAPTCHA v2 secretsite_key

andante_re_captcha:
  secret: 'put_here_your_google_recaptcha_v2_secret'
  site_key: 'put_here_your_google_recaptcha_v2_site_key'

开发/测试环境配置

请注意:如果您不希望在开发/测试环境中被 reCAPTCHA 打扰,只需使用您可以在Google ReCAPTCHA 文档页面中找到的 secret keysite key。此外,您可以在 test 环境中创建一个 test 配置来禁用 Andante\ReCaptchaBundle\Validator\Constraint\ReCaptchaValidator

andante_re_captcha:
  enable_validation: false #default: true

使用方法

之后,您可以在表单中添加与其他类型相同的 Andante\ReCaptchaBundle\Form\ReCaptchaType 表单类型。

<?php
use Andante\ReCaptchaBundle\Form\ReCaptchaType;
use Symfony\Component\Form\AbstractType;

class RegistrationFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            // ...
            // All your form fields
            // ...
            ->add('recaptcha', ReCaptchaType::class);
    }
}

完成! 🎉

您还有 2 个选项来更改 ReCAPTCHA 的 主题大小

$builder->add('recaptcha', ReCaptchaType::class, [
    'theme' => 'dark', // default is "light"
    'size' =>  'compact' // default is "normal"
]);

使用选项 'theme' => 'dark' 特别有用,如果您的应用程序有暗黑模式。

如何更改验证过程

验证由 Andante\ReCaptchaBundle\Validator\Constraint\ReCaptchaValidator 处理,这是 ReCaptchaType 选项中的默认约束。如果您想用您自己的替换它或出于任何原因禁用它,只需清空/替换表单类型 constraints 选项。

$builder->add('recaptcha', ReCaptchaType::class, [
    'constraints' => [
        // Default value is Constraints\NotBlank + Constraint\Recaptcha 
    ]
]);

AndanteProject 团队用爱💖打造。