我有一個採取由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數據將存在。 –