我正在使用Laravel,目前我有两种不同的身份验证级别:成员和管理员。问题是,我希望管理会话有一个超时时间,但对于成员会话却没有。我的用户使用同一台计算机,因此如果管理员在闲置5分钟后可以注销,这将更加安全。 我找不到解决办法。
有什么想法吗?
答案 0 :(得分:0)
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);
}