Недопустимая ошибка токена CSFR при регистрации при перемещении на рабочий сервер - PullRequest
0 голосов
/ 31 января 2019

Я переместил свой проект Symfony в производственную среду на новый сервер.Кажется, все прошло нормально, композитор установился нормально и т. Д. Однако форма регистрации, которую мы используем FOSUSERBUNDLE, теперь возвращает ошибку " Маркер CSRF недействителен. Пожалуйста, попробуйте повторно отправить форму. ",Повторная отправка формы просто возвращает ту же ошибку.У меня не было проблем с этим на сервере разработки.

Я переопределяю регистрационную форму FOSUERBUNDLE и шаблон страницы .twig, но изменения минимальны, кроме добавления некоторых полей формы.

Я подтвердил, чтосеансы создаются в var / session / prod.В регистрационной форме есть поле

<input type="hidden" id="fos_user_registration_form__token" name="fos_user_registration_form[_token]" value="U5ONtHIcHgIpmj9yNWOl13r91QGzgbqu4y3ypk3rq34" />

, но я также пытался принудительно заполнить поле _csrf_token в форме, но это не помогло.

Из security.yml:

    firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
            default_target_path: app_startpage
            always_use_default_target_path: true
        logout:
            handlers: [logout_listener]
        anonymous:    ~
        switch_user: ~
        remember_me:
           secret: '%secret%'

Есть ли какой-нибудь другой код релевантности, который я могу показать?

Решено : Я наконец нашел здесь поток с решением, которое сработало.Мы работаем с этим сайтом с субдоменами (у каждого «бизнеса» есть собственный субдомен), и я добавил код, чтобы файлы cookie распределялись по субдоменам: cookie_domain: «.% Base_url%».Устранение этой проблемы решило проблему с неверным токеном csrf.Оригинальный пост: stackoverflow.com/a/49481416/6759549

...