Php 如何在用户注销时节省时间?(已关闭)
我使用Php 如何在用户注销时节省时间?(已关闭),php,laravel,Php,Laravel,我使用Laravel 5.8身份验证和授权。 我有一个管理公司和员工的“管理员”。 当管理员登录时,我想显示新的公司和用户是什么 自上次管理会话以来创建。为此我想把它储存起来 管理员会话完成并从数据库查询的数据库时间 所有公司和工人都知道自上次会议以来创建的内容。 如果管理员使用注销我可以在数据库中存储时间,但如何 如果管理员刚刚关闭选项卡,则存储时间 --------------*- 我创建了中间件以节省上次请求的时间: public function handle($request, Clo
Laravel 5.8
身份验证和授权。
我有一个管理公司和员工的“管理员”。
当管理员登录时,我想显示新的公司和用户是什么
自上次管理会话以来创建。为此我想把它储存起来
管理员会话完成并从数据库查询的数据库时间
所有公司和工人都知道自上次会议以来创建的内容。
如果管理员使用注销
我可以在数据库中存储时间,但如何
如果管理员刚刚关闭选项卡,则存储时间
--------------*-
我创建了中间件以节省上次请求的时间:
public function handle($request, Closure $next)
{
if(Auth::check()){
$id = Auth::id();
Admin::whereId($id)->update(['last_enter' => now("Europe/Moscow")]);
}
return $next($request);
}
从轶事的角度讲,您可以使用with the event发送请求。我必须用它来捕获用户观看视频的时间,如果他们关闭了我需要录制的标签,这种方法对我来说一直有效
window.addEventListener('unload', function() {
navigator.sendBeacon('your-url',
JSON.stringify({})
);
}, false);
或者,在用户关闭窗口的情况下,您可以将注销时间设置为会话超时时间,例如:
登录时间+会话超时时间=注销时间
,但这并不“准确”.既然您只想使用laravel归档,我建议您检查中间件。您可以有一个中间件,其中的请求将通过该中间件,所以您的最后一个请求意味着这是用户最后一次使用它
您可以在laravel中了解有关中间件的更多信息。我只想为它使用laravel。@Loctarogar这是不可能的,laravel是服务器端的,只有在页面完成加载时才执行,您需要一些东西来侦听特定事件。@Loctarogar即使在laravel端也可以执行。您可以让中间件检查请求是否完成,这样您的最后一个请求就意味着这是用户最后一次使用它。另外,请注意,使用此处提供的方法在很多情况下都不起作用。@MagnusEriksson发送请求时,会话仍然处于活动状态,因此您应该很好。这是怎么回事?如果你让标签打开大约一个小时,让它坐在那里,然后关闭它。然后会话将不再处于活动状态(除非您更改了超时时间)。我建议记录用户的最后一个请求,而不是在他们关闭选项卡时。如果没有别的,他们可能已经加载了页面,打开了一个新的标签,开始在其他地方浏览,然后在一个小时左右关闭了你的应用标签,但他们实际上没有看到自初始加载以来发生的任何事情。你甚至可以更进一步,记录不同路由请求的时间。这很有意义。