中间件中的Laravel会话认证

问题描述 投票:0回答:1

我已经在会话中存储了一些值,并在中间件中进行了身份验证。我的会话超时为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');
    }```
laravel laravel-middleware
1个回答
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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.