Symfony 3.0.1 токен CSRF присутствует, но недействителен

У меня возникает эта странная проблема со свежей установкой Symfony 3.0.1. Я создал новый CRUD-контроллер с формой PostType, который содержит URL-адрес и заголовок. Ничего особенного.

Форма отображается как ожидалось. Он содержит как поле моего поля, так и поле заголовка. Внутри формы также отображается скрытое поле ввода _token.

При отправке этой формы я все время получаю следующую ошибку:

  Неверный токен CSRF.  Повторите отправку формы. 

Таким образом, токен добавляется в форму, он содержит значение, у меня есть постоянное значение cookie сессии PHP, это просто, что этот токен недействителен.

Я искал другие ответы, но подобные вопросы вызваны отсутствием входного сигнала.

Эта проблема также встречается в Symfony 3.0.2 / 3.0.3.

В моем случае это было то, что папка var/sessions/ не была доступна для записи. По умолчанию используется var / session, который устанавливается в config.yml.

 session: # http://symfony.com/doc/current/reference/configuration/framework.html#handler-id handler_id: session.handler.native_file save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%" 

Удостоверьтесь, что у вас есть var/ folders доступный для записи.

 chmod 775 -R var/sessions/ chmod 775 -R var/log/ chmod 775 -R var/cache/ 

У меня была аналогичная проблема с Symfony 3.2

Неверный токен CSRF. Повторите отправку формы.

Через несколько часов мы, наконец, обнаружили, что проблема связана с session.cookie_secure (https):

Наша производственная среда использует https, заставляя файлы cookie быть закреплены за https. В среде dev используется http. После перемещения dev с HTTP на HTTPS проблема была исправлена.

Кажется, это ошибка в версии symfony> 3.0, <3.0.3.

Как отметил @yellowmen, изменение параметра framework.session.save_path в config.yml устраняет проблему.

Ошибка также присутствует в версии 3.0.4. save_path: ~ работал для меня.

Я использую Symfony 3.2.1, и он работает на одной машине, но не на другой. Не знаю, почему.

@Shrihari его ответ привел меня к следующему решению.

В моем проекте также есть cookie_secure: true . Я обновил config_dev.yml и добавил cookie_secure: false в файл.

 framework: session: cookie_secure: false 

Это сработало для меня.