Используя Laravel -5.8, я создал пользовательскую панель активности входа с Laravel Auth, используя базу данных. Это работало отлично тогда. На панели инструментов я мог видеть следующее:
- Пользователи, вошедшие в систему сегодня
- Пользователи, вошедшие в систему за последние 7 дней
Пользователи, вошедшие в систему за последние 30 дней
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/dashboard';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
function authenticated(Request $request, $user)
{
$user->update([
'last_login_at' => now(),
]);
}
}
и контроллер приборной панели
class DashboardController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function user()
{
$number_blocks = [
[
'title' => 'Users Logged In Today',
'number' => User::whereDate('last_login_at', today())->count()
],
[
'title' => 'Users Logged In Last 7 Days',
'number' => User::whereDate('last_login_at', '>', today()->subDays(7))->count()
],
[
'title' => 'Users Logged In Last 30 Days',
'number' => User::whereDate('last_login_at', '>', today()->subDays(30))->count()
],
];
$list_blocks = [
[
'title' => 'Last Logged In Users',
'entries' => User::orderBy('last_login_at', 'desc')
->take(5)
->get(),
],
[
'title' => 'Users Not Logged In For 30 Days',
'entries' => User::where('last_login_at', '<', today()->subDays(30))
->orwhere('last_login_at', null)
->orderBy('last_login_at', 'desc')
->take(5)
->get()
],
];
$chart_settings = [
'chart_title' => 'Users By Months',
'chart_type' => 'line',
'report_type' => 'group_by_date',
'model' => 'App\User',
'group_by_field' => 'last_login_at',
'group_by_period' => 'month',
'aggregate_function' => 'count',
'filter_field' => 'last_login_at',
'column_class' => 'col-md-12',
'entries_number' => '5',
];
$chart = new LaravelChart($chart_settings);
return view('user-default', compact('number_blocks', 'list_blocks', 'chart'));
}
}
На этом этапе я смог увидеть эти подробности на приборной панели.
Но когда я решу чтобы изменить аутентификацию на Socialite Azure AD Auth, как показано ниже:
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/dashboard';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function redirectToProvider()
{
return Socialite::with('azure')->redirect();
}
public function handleProviderCallback()
{
$azureUser = Socialite::with('azure')->user();
try
{
$user = User::where('email', $azureUser->email)->orWhere('username', $azureUser->user['mailNickname'])->first();
if($user)
{
if(Auth::loginUsingId($user->id))
{
return redirect()->route('dashboard');
}
}
}
catch(\Exception $e)
{
session()->flash("error", "Your error message");
return redirect(route('login'));
}
}
function authenticated(Request $request, $user)
{
$user->update([
'last_login_at' => now(),
]);
}
}
Я заметил, что действия пользователей больше не отображаются на панели входа в систему.
Как сделать Я разрешаю это?
Спасибо.