中间件中的laravel会话身份验证

时间:2020-01-06 05:43:55

标签: laravel laravel-middleware

我已经在会话中存储了一些值,并在中间件中进行了身份验证。我的会话超时为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');
    }```

1 个答案:

答案 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);
    }