2017-10-28 152 views
0

我正在使用laravel 5.1應用程序,並且希望檢查每個請求後用戶會話是否已過期,以便將用戶重定向到登錄頁面。爲了做到這一點我創建了在每次請求運行的中間件 ,手柄功能看起來像這樣laravel 5.1檢查會話是否過期

public function handle($request, Closure $next) 
{ 
    if(session_status() === PHP_SESSION_NONE) 
    { 
      return redirect()->guest('login'); 
    } 
    return $next($request); 
} 

這似乎並不能正常工作,因爲當我輸入的「localhost:8000」在谷歌瀏覽器它說'本地主機重定向你太多次了',我想這是因爲會話還沒有開始,因爲用戶沒有登錄,所以......有沒有更好的方法來做這個檢查?

回答

0

您可以禁用某些路由中的中間件。通過將登錄路由添加到excepted_urls數組中。例如,添加以下的類的開頭:

protected $except_urls = [ 
     'login' 
    ]; 

,或者你可以在你的web.php/routes.php文件依據的Laravel的版本禁用您使用的是採用分組路由

+0

仍然不適合我,我收到相同的錯誤消息。 –