gpt4 book ai didi

php - 检查用户是否在线 laravel

转载 作者:行者123 更新时间:2023-12-01 08:22:44 25 4
gpt4 key购买 nike

我有列 last_activity,其中使用中间件写入最后一个事件用户的日期。我如何检查在线用户以及他何时退出?

中间件:

class LastActivityUser
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (\Auth::check() && (\Auth::user()->last_activity < new \DateTime('-5 minutes'))) {
$user = \Auth::user();
$user->last_activity = new \DateTime;
$user->timestamps = false;
$user->save();
}
return $next($request);
}
}

用户模型中的代码:
public function online() {
return ($this->last_activity > new \DateTime('-5 minutes') && $user->check()) ? true : false;
}
$user->check => Auth::check() - 不工作。我不需要使用 Auth::check(),我需要在其他用户上显示在线用户.. 但是 Auth::check()检查用户是否仅保留当前身份验证用户的帐户。

最佳答案

您可以使用中间件来检查在线用户

if(Auth::check()) {
$expiresAt = Carbon::now()->addMinutes(5);
Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt);
}

并检查用户:
public function isOnline()
{
return Cache::has('user-is-online-' . $this->id);
}

鉴于:
@if($user->isOnline())
user is online!!
@endif

也许这份文件能帮到你: https://erikbelusic.com/tracking-if-a-user-is-online-in-laravel/

关于php - 检查用户是否在线 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50075968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com