使用匿名帐户登录

时间:2018-10-01 03:46:25

标签: php laravel

我目前面临的问题是工作量很大。但是,我们仍然需要一个有效的管理面板。我决定不重新编码一个完整的管理面板,而是决定只在其中进行统计,然后将逻辑移出那里。

我正在使用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外观内提供自定义数据的方法。

谢谢!

1 个答案:

答案 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);
}