Tôi có một hành động đảm bảo dữ liệu POST được bảo vệ bởi sfGuard. Điều này có nghĩa là nếu người dùng không đăng nhập, dữ liệu POST sẽ được gửi đến biểu mẫu đăng nhập. Thông thường, đây không phải là vấn đề, người dùng tiếp tục đăng nhập và phải gửi lại dữ liệu.Gửi yêu cầu POST đến hành động được bảo đảm
Thật không may, biểu mẫu đăng nhập dường như đang sử dụng dữ liệu POST như thể nó đã được gửi cùng với biểu mẫu. Điều này có nghĩa là nó phàn nàn rằng các trường tên người dùng và mật khẩu bắt buộc bị thiếu và nó phàn nàn rằng nó thiếu một mã thông báo CSRF. Vấn đề cuối cùng này không biến mất, sau khi gửi biểu mẫu, nghĩa là người dùng không thể đăng nhập.
Người dùng không được hiển thị biểu mẫu nếu chưa đăng nhập nhưng người dùng có thể đăng xuất bằng biểu mẫu vẫn mở. Vì vậy, tôi yêu cầu sự quan tâm của việc giữ giao diện kín nước và không có lỗi.
Đây có phải là một thiếu sót của sfGuard, có thể tránh được không, hoặc tôi đang làm điều gì đó sai hoàn toàn?
Để làm rõ, con đường trông như thế này:
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]
Các hình thức sử dụng để gửi các yêu cầu như sau:
<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>
bạn có thể cụ thể hơn bạn đang cố gắng để thực hiện một mẫu đăng nhập hoặc những gì? – Henry
Tôi đang cố gọi một hành động được bảo đảm. Nếu người dùng không đăng nhập, nó sẽ chuyển sang biểu mẫu đăng nhập hiện có. Do hành động yêu cầu dữ liệu POST, dữ liệu POST này đang can thiệp vào biểu mẫu. Bạn có thể cụ thể hơn về những gì tôi cần cụ thể hơn không? – Druckles
Bạn xử lý như thế nào nếu người dùng chưa đăng nhập? Nếu bạn phát hành chuyển hướng tiêu đề thì dữ liệu POST sẽ bị xóa. nếu bạn thay vào đó là bao gồm nó, thì dữ liệu POST sẽ xuất hiện. –