Войти с анонимной учетной записью - PullRequest
0 голосов
/ 01 октября 2018

Я сейчас сталкиваюсь с проблемой, что нагрузка слишком велика.Однако нам все еще нужна рабочая админка.Вместо того, чтобы перекодировать полную панель администрирования, я решил сделать там только статистику и убрать логику.

Я использую Laravel 5.5.Мы получаем идентификаторы пользователя от конкретного человека и просто входим в систему с помощью

<?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 голосов
/ 01 октября 2018

Каждый раз, когда вы используете 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...