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

时间:2013-04-21 13:06:18

标签: php laravel laravel-3

我是Laravel(版本3)的新手,我不知道如何在Laravel中设置路由和过滤器,以便任何试图访问任何URL的未授权用户重定向到登录页面(不是404错误),换句话说,未授权用户的默认主页将成为登录页面,对于授权用户,它将成为仪表板。

2 个答案:

答案 0 :(得分:3)

如果您使用的是laravel Auth类,则可以创建授权路由组。如果用户没有登录,那么在那里定义的所有路由都将被重定向。您的路由器文件将如下所示:

Route::get('/', array('as' => 'intro', 'uses' => 'intro@index'));
Route::get( 'login', array('as' => 'login', 'uses' => 'user@login'));
Route::get( 'logout', array('as' => 'logout', 'uses' => 'user@logout'));

// PROTECTED
Route::group(array('before' => 'auth'), function()
{
   Route::get('dashboard', array('as' => 'dashboard', 'uses' => 'user@dashboard'));
});

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

答案 1 :(得分:0)

只需在路径声明中添加一个前置过滤器,就像这样

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

默认情况下,Laravel中存在Auth过滤器。