验证重定向无效。前缀不显示

时间:2015-01-19 19:18:35

标签: php authentication laravel routing prefix

除非我尝试打开一些需要身份验证的链接,否则一切正常。

Route::group(array('prefix' => 'admin'), function(){
    Route::get('login', array('as' => 'admin.login', 'uses' => 'AdminAuthController@getLogin'));
    Route::post('login', array('as' => 'admin.login.post', 'uses' => 'AdminAuthController@postLogin'));
    Route::get('logout', array('as' => 'admin.logout', 'uses' => 'AdminAuthController@getLogout'));
});

Route::group(array('prefix' => 'admin', 'before' => 'auth'), function(){
    Route::get('dashboard', array('as' => 'admin.dashboard', 'uses' => 'AdminWorksController@dashboard'));
    Route::get('/', array('as' => 'admin.dashboard', 'uses' => 'AdminWorksController@dashboard'));
    Route::resource('works', 'AdminWorksController', array('except' => array('show')));
});

所以当我HTML::linkRoute('admin.login')输出链接没问题的时候,但是当我尝试使用过滤器'before'=>'auth'打开一个路径而没有登录时,重定向到/login /admin/login

除此之外,一切都很好。命令php artisan routes看起来也不错。

我做错了什么?我怎样才能修复这个错误的auth重定向?

1 个答案:

答案 0 :(得分:1)

auth中的app/filters.php过滤器更改为:

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