【发布时间】:2014-05-20 12:02:10
【问题描述】:
由于某种原因,CSRF 无法正常工作,无法重定向:
这是过滤器
Route::filter('csrf', function()
{
if (Session::token() != Input::get('_token')) {
return Redirect::to('/')->with('errors', 'request failed!');
}
});
这是我的路线
Route::group(array('before' => 'crsf'), function() {
Route::get("/Token", function() {
$different = (Session::token() != Input::get('_token')) ? "IS DIFFERENT" : "IS EQUAL";
$token = Session::token();
$input = Input::get("_token");
$equals = ($token == $input) ? "TRUE" : "FALSE";
return Response::json(array(
"session_token" => $token,
"input" => $input,
"diff" => $different,
"equals" => $equals
));
});
});
Response 显示 Session token 和 Input (NULL) 比较的结果是 FALSE,它们是不同的,但是过滤器没有重定向。
【问题讨论】:
-
尝试删除 if 语句并在过滤器上只留下一个重定向,以查看过滤器是否被调用。
-
不,它甚至没有被调用
-
是的,那是因为你没有调用它。
-
事实上,我刚刚发现 Route::group 是不工作的,当我在组外使用过滤器时它工作