我对cakephp中的黑洞请求有很多了解,但我找不到解决问题的方法。
在我的应用程序中,我在几个地方使用登录表单,所以我创建了一个可重用的元素。像:
echo $this->Form->create('User', array('class' => 'form-horizontal', 'role' => 'form', 'url' => array('controller' => 'users', 'action' => 'login')));
echo $this->Form->input('email', array('label' => false, 'class' => 'form-control'));
echo $this->Form->input('password', array('label' => false, 'class' => 'form-control'));
echo $this->Form->end();
(注意:url到控制器和表单中的操作)
如果我点击foo.com/users/login
中表单的发送按钮,我会成功重定向到用户/视图,或者重新定向到用户/登录失败。之后我按下浏览器页面返回按钮返回到表单并再次单击发送按钮一切正常,再次检查登录。但是,如果我在例如foo.com/pages/home
中做同样的事情,我会在第二次继续获得请求黑洞异常(第一次正常)。
如果我停用安全组件,一切正常,但这不是我想要的。
我该如何防止这种情况?
我也认识到securtiy组件默认不可用?这是真的吗?
感谢您的帮助。
答案 0 :(得分:2)
安全组件阻止用户重新访问表单。 当用户按下后退按钮时,您可以使用
重新验证页面 $this->response->disableCache();