php检查在线用户,php – 检查用户是否在线laravel
我有列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()檢查用戶是否只為當前的auth用戶保留帳戶..
解決方法:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Factory as Auth;
class LastActivityUser
{
/**
* The authentication factory instance.
*
* @var \Illuminate\Contracts\Auth\Factory
*/
protected $auth;
/**
* Create a new middleware instance.
*
* @param \Illuminate\Contracts\Auth\Factory $auth
* @return void
*/
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->check() && $this->auth->user()->last_activity < Carbon::now()->subMinutes(5)->format('Y-m-d H:i:s')) {
$user = $this->auth->user();
$user->last_activity = new \DateTime;
$user->timestamps = false;
$user->save();
}
return $next($request);
}
}
標簽:php,laravel
來源: https://codeday.me/bug/20191008/1873422.html
總結
以上是生活随笔為你收集整理的php检查在线用户,php – 检查用户是否在线laravel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目的论浅谈
- 下一篇: php 向服务器发放请求,PHP客户端向