我已经在会话中存储了一些值,并在中间件中进行了身份验证。我的会话超时为SESSION_LIFETIME = 120。当它的页面非常适合30分钟并且对其执行一些操作时,中间件会验证它的正确性并继续进行,但是由于代码,它会在功能上带来一些错误,但是我再次刷新了它重定向到登录页面的代码
laravel版本6 处理方法
{
$this->authuser = getLogedinUser();
if(Arr::has($this->authuser,['id','name','email',token]) && Arr::get($this->authuser,'token',0))
{
return $next($request);
}
return redirect('/login');
}```
答案 0 :(得分:0)
尝试一下
public function handle($request, Closure $next)
{
if(!$this->session->has('lastActivityTime'))
$this->session->put('lastActivityTime',time());
elseif(time() - $this->session->get('lastActivityTime') > $this->getTimeOut()){
$this->session->forget('lastActivityTime');
Auth::logout();
return redirect('auth/login')->withErrors(['You had not activity in 30 minutes']);
}
$this->session->put('lastActivityTime',time());
return $next($request);
}