У меня есть действие, которое принимает данные POST, защищенные sfGuard.Это означает, что если пользователь не вошел в систему, данные POST будут отправлены в форму входа.Обычно это не проблема, пользователь продолжает вход в систему и вынужден снова отправлять данные.
К сожалению, форма входа в систему, похоже, использует данные POST, как если бы они были отправлены вместе с формой.сам.Это означает, что он жалуется на отсутствие обязательных полей имени пользователя и пароля, а также на то, что отсутствует токен CSRF.Эта последняя проблема не исчезает после отправки формы, что означает, что пользователь все равно не может войти в систему.
Пользователь не должен быть представлен с формой, если он не вошел в систему, но это может быть возможно для пользователявыйти с открытой формой.Поэтому я спрашиваю в интересах сохранения интерфейса водонепроницаемым и безошибочным.
Является ли это недостатком sfGuard, его можно избежать или я вообще что-то делаю неправильно?
уточнить, маршрут выглядит так:
add_subgroup:
url: /group/:id/add
class: sfPropelRoute
options:
model: Group
type: object
param: { module: subgroups, action: create }
requirements:
group_id: \d+
sf_method: [post]
Форма, используемая для отправки запроса, выглядит следующим образом:
<form action="<?php echo url_for('add_subgroup', $group) ?>" method="post">
<input type="hidden" name="group_id" value="<?php echo $group->getId() ?>" />
<input type="text" name="subgroup_id" />
<input type="submit" class="button" value="Add" />
</form>