我有一个采取由sfGuard保护的POST数据的操作。这意味着如果用户没有登录,POST数据将被发送到登录表单中。通常,这不是问题,用户会继续登录,并且必须重新提交数据。发送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>
你可以更具体的是你想做一个登录表单还是什么? – Henry
我正在尝试调用一个安全操作。如果用户没有登录,它会转到现有的登录表单。由于此操作需要POST数据,因此此POST数据会干扰表单。你能更具体地说我应该更具体一些吗? – Druckles
如果用户未登录,您将如何处理?如果您发出标题重定向,则应该清除POST数据。如果您将其包含在内,则POST数据将存在。 –