2017-10-28 113 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

仍然不适合我,我收到相同的错误消息。 –

相关问题