检查用户是否在线laravel [英] Check if user online laravel
本文介绍了检查用户是否在线laravel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有last_activity列,其中写有上次活动的用户和中间件的日期.
如何检查在线用户以及何时注销?
I have column last_activity, where write date last activity user with middleware.
How I can check online user and when he logout?
中间件:
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()
检查用户是否仅保留当前身份验证用户的帐户.
$user->check
=> Auth::check()
- not working. I don't need use Auth::check(), I need show online user on other users.. But Auth::check()
check if user stay in account only for current auth user..
推荐答案
<?php
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);
}
}
这篇关于检查用户是否在线laravel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文