如何节省用户注销时间?

时间:2019-03-18 16:48:33

标签: php laravel

我使用Laravel 5.8身份验证和授权。 我有一个管理公司和工人的“管理员”。 管理员登录时,我想显示什么是新公司和新用户  自上次管理会话以来创建。为此,我想存储在  管理员会话结束并从数据库查询时的数据库时间  自上届会议以来创建的所有公司和工人。  如果管理员使用logout,我可以在数据库中存储时间,但是如何  如果管理员仅关闭选项卡??,则存储时间

--------------*-

我创建了中间件来节省上一次请求的时间:

public function handle($request, Closure $next)
    {
        if(Auth::check()){
            $id = Auth::id();
            Admin::whereId($id)->update(['last_enter' => now("Europe/Moscow")]);
        }

        return $next($request);
    }

2 个答案:

答案 0 :(得分:1)

说起来,您可以将sendBeaconunload事件一起使用来发送请求。我必须使用它来捕获用户花在观看视频上的时间,如果他们关闭了我需要录制的标签,则这种方法对我来说是一致的。

window.addEventListener('unload', function() {
    navigator.sendBeacon('your-url',
      JSON.stringify({})
    );
}, false);

或者,您可以在用户关闭窗口的情况下,将注销时间设置为会话超时时间,例如:sign-in-time + session-timeout-time = logout-time,但同样,这不是“准确”。

答案 1 :(得分:1)

由于您只想使用laravel进行归档,因此建议您检查middlewares。您可以在中间件中传递请求,因此上一个请求意味着您是用户最后一次使用它。

Here,您可以了解有关laravel中的中间件的更多信息。