仅为管理员创建计时器



我正在使用Laravel,目前我有两个不同级别的身份验证:成员和管理员。问题是,我希望管理会话有一段时间,但不是成员会话。我的用户使用同一台计算机,所以如果管理员可以在5分钟不活动后注销,会更安全。我找不到做这件事的方法。

知道吗?

Laravel实现这一点的方法是通过中间件。您可以创建一个新的中间件,并根据登录的用户进行超时检查。有关使用中间件的更多详细信息,请参阅官方文档。

https://laravel.com/docs/5.6/middleware

中间件的粗略实现如下所示:

public function handle($request, Closure $next){
$user = auth()->user();
if($user->isAdmin()){
$time_elapsed = time() - session('lastActivityTime');
if($time_elapsed > self::ADMIN_TIMEOUT){ // or wherever you store the configuration
auth()->logout();
}
}
$this->session->put('lastActivityTime', time());
return $next($request);
}

最新更新