我正在使用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”重定向了你太多次了,我想这是因为会话还没有启动,因为用户没有登录,所以...有没有更好的方法来做到这一点检查?
答案 0 :(得分:0)
您可以在某些路由中禁用中间件。通过将登录路由添加到excepted_urls数组。例如,在课程开头添加以下内容:
protected $except_urls = [
'login'
];
或者您可以在web.php / routes.php中禁用它,具体取决于您使用路由分组所使用的Laravel版本