Sylius安全。登录-谷歌重新验证码

问题描述 投票:0回答:0

我想在Sylius登录表格中添加ReCaptcha,我已经安装了以下软件 stefandoornsylius-recaptcha-plugin。 并按照所有的安装说明进行了安装,但它没有验证,即使验证码字段为空,表单也会被记录下来,没有抛出任何错误.我目前使用的是Sylius v1.7。

视图工作良好,看起来是这样的。用验证码登录我已经扩展了SecurityLoginType并创建了一个扩展。

<?php

declare(strict_types=1);

namespace App\Form\Extension;

use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
use EWZ\Bundle\RecaptchaBundle\Validator\Constraints\IsTrue as RecaptchaTrue;
use Sylius\Bundle\UiBundle\Form\Type\SecurityLoginType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\FormBuilderInterface;

class SecurityLoginTypeExtension extends AbstractTypeExtension
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder->add('_recaptcha', EWZRecaptchaType::class, [
            'mapped' => false,
            'constraints' => [
                new RecaptchaTrue(),
            ],
            'attr' => [
                'defer' => true,
                'async' => true,
            ],
        ]);
    }

    public static function getExtendedTypes(): iterable
    {
        return [SecurityLoginType::class];
    }
}

并将该扩展注册到 configservices.yml

app.form.extension.type.security_login:
        class: App\Form\Extension\SecurityLoginTypeExtension
        tags:
            - { name: form.type_extension, extended_type: Sylius\Bundle\UiBundle\Form\Type\SecurityLoginType }

并在 SyliusUiBundleSecurity_login.html.twig。

...
{% form_theme form '@EWZRecaptcha/Form/ewz_recaptcha_widget.html.twig' %}

{{ form_errors(form._recaptcha) }}
{{ form_widget(form._recaptcha, { 'attr': {
    'options' : {
        'theme': 'light',
        'type': 'image',
        'size': 'normal'
    },
} }) }}
...

有什么建议吗.先谢谢了。

symfony4 sylius
© www.soinside.com 2019 - 2024. All rights reserved.