【问题标题】:Laravel Filter Not WorkingLaravel 过滤器不工作
【发布时间】: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 是不工作的,当我在组外使用过滤器时它工作

标签: laravel csrf


【解决方案1】:

你有一个错字:

Route::group(array('before' => 'crsf'), function() {

应该是:

Route::group(array('before' => 'csrf'), function() {

【讨论】:

  • 天哪,这种情况经常发生
猜你喜欢
  • 2012-08-01
  • 2023-03-21
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多