session(); $admin = Admin::find($admin_id); if (!$admin) { $session->forget('admin'); return null; } $admin = $admin->toArray(); $admin['password'] = md5($admin['password']); $admin_session['password'] = $admin_session['password'] ?? ''; if ($admin['password'] != $admin_session['password']) { $session->forget('admin'); return null; } // 账户被禁用 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); } function admin_error_401_script(): Response { return response(<<top.location.href = '/app/admin'; EOF ); } /** * 执行闭包,捕获异常并返回 Result 对象(Kotlin 风格) * @param callable $func * @param string|null $errorMsg * @return RunCatching */ function runCatching(callable $func, ?string $errorMsg = null): RunCatching { try { return RunCatching::success($func()); } catch (\Throwable $e) { if ($errorMsg != null) Logger::error($errorMsg, $e); return RunCatching::failure($e); } }