仅为管理员创建一个计时器

Create a timer only for admin

我正在使用 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);
}