laravel - 中间件中的 laravel 会话身份验证
问题描述
我在会话中存储了一些值并在中间件中检查以进行身份验证。我的会话超时是 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');
}```
解决方案
尝试这个
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);
}
推荐阅读
- matlab - MATLAB中复合层压板的遗传算法优化
- javascript - TouchableWithoutFeedback onPress 没有触发
- javascript - Angular如何在浏览器重新加载/刷新之前跟踪/检查时间
- c# - 如何从字符串列表中随机提取唯一值?
- c - 检查int_long变量第一个字符是否等于c中的某个数字
- r - 尝试从 Rstudio Connect 获取使用情况统计信息时出错
- r - 在默认列表顶部添加自定义停用词
- r - 如何从 R 中的宽格式文本文件中提取特定数据点?
- r - 使用 purrr 时如何自定义 ggplot2 facet_grid 标签中的文本?
- grails - Shiro - Grails 应用程序中的“调用代码无法访问 SecurityManager...”异常