所以,我有一个RESTful控制器,这意味着我必须在控制器中定义CSRF过滤器用法。我已经查明了它是如何工作的,我很确定我应该做些什么。遗憾的是,即使我从表单中删除令牌,它仍然提交正常并且不会出错。这是我的控制器的构造函数:
$this->beforeFilter('csrf', array('only' => 'post'));
$teams = Team::all();
$streamers = Streamer::all();
View::share('teams', $teams);
View::share('streamers', $streamers);
在我的表单中,我只是使用 {{Form :: token()}} ,即使我删除它仍然有效。
答案 0 :(得分:1)
更改此
$this->beforeFilter('csrf', array('only' => 'post'));
到这个
$this->beforeFilter('csrf', array('on' => 'post'));
<强>释强>
only
或except
用于控制器方法(索引,显示,更新,...),on
用于HTTP方法(post,get,put,delete)
修改强>
如果仍然无效,请粘贴CSRF过滤器(如果已编辑)。还要确保您的路线正确。如果您在BaseController中定义了beforeFilter,请确保控制器中的其他控制器包含parent::__construct()
(如果存在)。