Log :: info - вход пользователя в систему laravel.log - PullRequest
0 голосов
/ 28 мая 2019

Я хочу добавить все действия внутри моего приложения в файл larave.log.Я смог добавить логин пользователя внутри него, но не выход из системы.

Я делаю это, используя Laravel 5.8 с базой данных mysql 5.

Это код внутри HomeController для регистрации пользователя, загружающего домашний вид..

public function index()
{
    Log::info('Utente collegato: '.Auth::user()->name);
    return view( config('configpath.user_home') );// loading user homepage
}

Код ниже находится внутри Laravel по умолчанию LoginController

public function userLogout()
{
    Log::info('User '.Auth::user()->name. 'has logged out');
    Auth::guard('web')->logout();
    return redirect()->route('login');
}

При выходе из системы я ожидаю увидеть сообщение о выходе пользователя из системы, как при входе в систему, но я его не вижу.Кто-то может дать мне объяснение?Спасибо!

Ответы [ 3 ]

3 голосов
/ 28 мая 2019

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

/**
 * Log the user out of the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function logout(Request $request)
{
    Log::info('User '.Auth::user()->email.' has logged out');
    Auth::guard('web')->logout();

    return redirect()->route('login');
}
1 голос
/ 28 мая 2019

Вы можете прослушивать события Login и Logout для регистрации действий. Для этого добавьте следующее к boot() методу вашего EventServiceProvider:

Event::listen(\Illuminate\Auth\Events\Login::class, function ($event) {
    \Log::info("User login: {$event->user->name}");
});

Event::listen(\Illuminate\Auth\Events\Logout::class, function ($event) {
    \Log::info("User logout: {$event->user->name}");
});

Используя этот метод, вам не нужно переопределять существующие и предоставляемые каркасом действия контроллера.

0 голосов
/ 06 июня 2019

Вам необходимо установить метод выхода из системы в app / Http / Controllers / Auth / LoginController.php

public function logout(Request $request)
{

  Log::info('User '.Auth::user()->email.' has logged out');

  $this->guard()->logout();

  $request->session()->invalidate();

  return redirect()->route('login');
}

Этот метод будет вызывать при выходе из системы, если вы установили маршруты аутентификации по умолчанию и журнал будет добавленпри выходе из системы в файле laravel.log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...