验证过滤器不起作用

时间:2014-08-14 03:45:44

标签: authentication laravel filter laravel-routing

尝试使用auth过滤器以防止用户在未登录的情况下访问某些路由。以下代码无论用户的状态如何都会重定向。我无法在任何地方找到放在功能中的内容。我正在使用http://laravel.com/docs/security#protecting-routes作为参考。不确定我是否应该使用if语句。不知道该怎么做。

路线:

Route::get('/account', ['before' => 'auth', function() 
{
    //  continue to /account
}]);

来自app/filters的标准'auth'过滤器:

 Route::filter('auth', function()
 {
 if (Auth::guest())
 {
    if (Request::ajax())
    {
        return Response::make('Unauthorized', 401);
    }
    else
    {
        //return Redirect::guest('login');
    }
}
});

我理解它的方式只能在用户登录时加载函数中的代码。否则给出401错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在朋友的帮助下我修好了。一些重要信息,路由过滤器将继续用于预期目的,除非从过滤器返回某些内容。此外,标准auth过滤器将不起作用。必须修改。之后是蛋糕。代码如下。

路线:

Route::get('/account', ['before' => 'auth', 'uses' => 'SiteController@account']);

验证过滤器:

Route::filter('auth', function()
{
    if (Auth::guest())
    {
        return Response::make('Unauthorized', 401);
    }
});