laravel 5.1检查会话是否过期

时间:2017-10-28 17:52:10

标签: php laravel session laravel-5.1 php-5.6

我正在使用laravel 5.1应用程序,我想在每次请求后检查用户会话是否已过期,以便将用户重定向到登录页面。 为了做到这一点,我创建了一个在每个请求上运行的中间件,handle函数看起来像这样

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

这似乎无法正常工作,因为当我键入' localhost:8000'在google chrome中,它说“localhost”重定向了你太多次了,我想这是因为会话还没有启动,因为用户没有登录,所以...有没有更好的方法来做到这一点检查?

1 个答案:

答案 0 :(得分:0)

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

 protected $except_urls = [
        'login'
    ];

或者您可以在web.php / routes.php中禁用它,具体取决于您使用路由分组所使用的Laravel版本