session(); $admin = Admin::find($admin_id); if (!$admin) { $session->forget('admin'); return null; } $admin = $admin->toArray(); unset($admin['password']); // 账户被禁用 if ($admin['status'] != 0) { $session->forget('admin'); return; } $admin['roles'] = AdminRole::where('admin_id', $admin_id)->pluck('role_id')->toArray(); $admin['session_last_update_time'] = $time_now; $session->set('admin', $admin); } /** * 刷新当前用户session * @param bool $force * @return void */ function refresh_user_session(bool $force = false) { if (!$user_id = user_id()) { return null; } $time_now = time(); // session在2秒内不刷新 $session_ttl = 2; $session_last_update_time = session('user.session_last_update_time', 0); if (!$force && $time_now - $session_last_update_time < $session_ttl) { return null; } $session = request()->session(); $user = User::find($user_id); if (!$user) { $session->forget('user'); return null; } $user = $user->toArray(); unset($user['password']); $user['session_last_update_time'] = $time_now; $session->set('user', $user); }