我有一個用戶類,它由兩種類型的用戶組成,並希望允許不同的用戶訪問不同的頁面。在Laravel中使用HTTP基本身份驗證進行註冊
我創建了一個過濾器如下
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 ::註銷()工作?我試過把它放在應用程序的任何地方都無濟於事。
歡呼
嘗試重定向到其他路由而不是返回'Auth :: basic()'響應。技術上你的代碼應該工作。您也可以在註銷後嘗試'dd(Auth :: check())',看看註銷是否正常工作。 –
好的。重定向功能起作用,我可以放在視圖中並將其彈出。 Auth :: logout()在應用程序中的任何位置都不起作用。任何想法爲什麼? –