@MasterCopipaster

Кто сталкивался с кривым модулем формирования csrf token а в symfony 5?

Слушайте объясните как с этим жить?
Я настроил авторизацию на сайте по этой инструкции

Сделал такую форму для логина
class LoginType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('email',null,array('label' => false,'attr' => ['class' => 'register-form-input','autocomplete' => 'off']));
        $builder->add('password',PasswordType::class,array('label' => false,'attr' => ['class' => 'register-form-input','autocomplete' => 'off']));
        $builder->add('captcha', CaptchaType::class,array('label' => false,'attr' => ['class' => 'register-form-input','autocomplete' => 'off']));
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            // Configure your form options here
        ]);
    }
}

При авторизации вечно получаю Invalid CSRF token.

Моя форма для twig выглядела так
{{ form_start(login_form) }}
                    <b>Email:</b><br />
                    {{ form_row(login_form.email) }}
                    <b>Password:</b><br />
                    {{ form_row(login_form.password) }}
                    <b>Код с картинки:</b><br />
                    {{ form_row(login_form.captcha) }}
                    <div class="text-center"><button type="submit" class="site-btn">Войти</button></div>
                    {{ form_row(login_form._token) }}
                    {{ form_end(login_form) }}

Генерила такую форму (лишние не стал писать)
<input type="hidden" id="login__token" name="login[_token]" value="ZtVwBzXtPbbnZp-5D4RysR7eDDt1z3Tr5WvBCv7C1VU" /></form>

Думаю ну в чем проблема в сессии этот токен есть все ок, стал выяснять
Добавил html верстку из примера
{{ form_row(login_form._token) }}
                    <input type="hidden" name="_csrf_token"
                           value="{{ csrf_token('authenticate') }}"
                    >
                    {{ form_end(login_form) }}


Получил два разных csrf tokenа
<input type="hidden" name="_csrf_token"
                           value="Xtnmxi4Pn_N95067wjxYEMh3t7vhf4FiPJCxYNUnWqA"
                    >
                    <input type="hidden" id="login__token" name="login[_token]" value="ZtVwBzXtPbbnZp-5D4RysR7eDDt1z3Tr5WvBCv7C1VU" /></form>

Первый сгенерирован модулем авторизации, второй стандартной формой
603197f12a534457615282.bin

Я в замешательстве, как мне быть? почему токены разные? как заставить форму авторизации генерить нормальный токен? в других формах кстати стандартный токен например работает нормально... Что посоветуете?
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
Тоже натыкался, решения не нашел. В итоге также - 2 токена, один родной и один ручной.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы