<?php
namespace App\Form;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class LoginFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('_username', TextType::class, ['attr' => ['placeholder' => 'Usuario'], 'empty_data' => $options['lastUsername']])
->add('_password', PasswordType::class, ['attr' => ['placeholder' => 'ContraseƱa']])
//->add('_remember_me', CheckboxType::class, ['required' => false])
;
$builder->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3(),
'action_name' => 'login'
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
//default csrf parameters defined in Symfony codes. without this configuration csrf check will fail
'csrf_field_name' => '_csrf_token',
'csrf_token_id' => 'authenticate',
'lastUsername' => null
]);
}
}