Laravel登录后重定向困境

时间:2014-10-21 11:25:47

标签: php laravel-4 laravel-routing

在路线中我有一组路线,受到过滤器backend_login

的保护
Route::group(array('prefix' => 'backend', 'before' => 'backend_auth'), function() {

    Route::get('/','AdminMainController@index');
    Route::get('/main', 'AdminMainController@index');
    Route::get('/logout', 'UserMainController');
});


Route::any('backend/login', array('as' => 'backend_login', 'uses' =>'AdminUserController@login'));
在filter.php中的

我有一个过滤器

Route::filter('backend_auth', function(){
    if ( ! Sentry::check()) return Redirect::route('backend_login');
});

问题是当用户已经登录时,他仍然可以返回登录页面。我试图通过添加过滤器'backend_auth'

来阻止它
Route::filter('backend_auth', function(){
    if ( ! Sentry::check()) return Redirect::route('backend_login');
    else {
         return Redirect::to('backend/main');
    }
});

但后来我得到了一个重定向循环。实际上,登录后重定向到后端/主要是我想要的,但我不能让它正常工作。 知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。 在filter.php中,我只需要检查用户是否已登录,以显示登录页面。然后在AdminUserController中的登录功能的开始,我将决定是否要将他重定向到后端/主要。因此,无限重定向循环的问题将得到解决。

  if (Sentry::check()) return Redirect::route('backend_main');
相关问题