laravel 5.1 检查会话是否过期

laravel 5.1 check if a session is expired

我正在开发一个 laravel 5.1 应用程序,我想在每次请求后检查用户会话是否已过期,以便将用户重定向到登录页面。 为此,我创建了一个在每个请求上运行的中间件,句柄函数如下所示

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

这似乎无法正常工作,因为当我在 google chrome 中键入 'localhost:8000' 时它显示 'localhost redirected you too many times',我猜这是因为会话没有由于用户未登录而启动,所以...有没有更好的方法来进行此检查?

您可以在某些路由中禁用中间件。通过将登录路由添加到 excepted_urls 数组。例如,在 class 的开头添加以下内容:

 protected $except_urls = [
        'login'
    ];

或者您可以在您的网站中禁用它。php/routes.php 取决于您使用的 Laravel 版本,通过使用路由分组