如何将未经授权的用户重定向到Laravel的登录页面?

问题描述:

我是Laravel(版本3)的新手,我不知道如何在Laravel中设置路由和过滤器,以便任何尝试访问任何url的未经授权的用户都会重定向到登录页面(而不是404错误)换言之,未授权用户的默认主页将成为登录页面,授权用户将成为仪表板。如何将未经授权的用户重定向到Laravel的登录页面?

如果您使用的是laravel Auth类,则可以创建授权的路由组。如果用户没有登录被定义有所有路线将被重定向你的路由器的文件将是这个样子:

Route::get('/', array('as' => 'intro', 'uses' => '[email protected]')); 
Route::get('login', array('as' => 'login', 'uses' => '[email protected]')); 
Route::get('logout', array('as' => 'logout', 'uses' => '[email protected]')); 

// PROTECTED 
Route::group(array('before' => 'auth'), function() 
{ 
    Route::get('dashboard', array('as' => 'dashboard', 'uses' => '[email protected]')); 
}); 

// AUTH FILTER 
Route::filter('auth', function() 
{ 
    if (Auth::guest()) return Redirect::to('login'); 
}); 

只要把过滤器之前的路线的声明这样

Route::get('edit_profile', array('before' => 'auth', function() 
{ 
    return View::make('profile.edit'); 
})); 

Auth过滤器默认存在于Laravel中。