我有一个用户类,它由两种类型的用户组成,并希望允许不同的用户访问不同的页面。
我创建了一个过滤器,如下所示
Route::filter('isExpert', function()
{
$userIsExpert = 0;
$userIsLoggedIn = Auth::check();
if ($userIsLoggedIn && Auth::user()->role == 'expert') {
$userIsExpert = 1;
}
Log::info('Logged in: ' . $userIsLoggedIn . ' && Expert: ' . $userIsExpert);
if ($userIsExpert == 0)
{
Log::info('should be logging out now.');
Auth::logout();
return Auth::basic();
}
});
像这样路由
Route::get('/winners', array('before' => 'isExpert', function()
{
$winners = DB::select('select * from winners');
return View::make('winners.index')->with('winners',$winners);
}));
想法是这样的:如果它不是专家,它将注销并重定向到登录页面。如果是,它将继续。但是, Auth::logout(); 永远不会注销用户。
问题
为什么 Auth::logout() 不工作?我试过把它放在应用程序的任何地方都无济于事。
干杯