我目前面临的问题是工作量很大。但是,我们仍然需要一个有效的管理面板。我决定不重新编码一个完整的管理面板,而是决定只在其中进行统计,然后将逻辑移出那里。
我正在使用Laravel 5.5。我们从特定的人那里获取用户ID,只需使用
登录<?php
Auth::login($user);
?>
但是,我们还使用一个简单的中间件来跟踪所有用户的最新活动,如下所示:
public function handle($request, Closure $next)
{
if(!auth()->check()) {
return $next($request);
}
auth()->user()->last_action_ip = $_SERVER['REMOTE_ADDR'];
auth()->user()->last_action_date = Carbon::now();
auth()->user()->save();
return $next($request);
}
这有助于我们跟踪所有内容。显然,当我以管理权限登录时,我不想跟踪任何活动,是否有任何可能的想法?我还没有找到在Auth外观内提供自定义数据的方法。
谢谢!
答案 0 :(得分:1)
每次使用auth()->user()
时,它将生成一个新的\App\User
实例。因此,首先您要使用auth()->user()
创建一个实例。然后更新创建的实例。
作为您的密码。
public function handle($request, Closure $next)
{
if(!auth()->check()) {
return $next($request);
}
$user = auth()->user();
// Checking the privilege
// $user->privilege is the column that you store user privilege status
if($user->privilege !=1){
$user->last_action_ip = $_SERVER['REMOTE_ADDR'];
$user->last_action_date = Carbon::now();
$user->save();
}
return $next($request);
}