success(compact('web_setting')); } /** 用户登录 */ #[PostRoute('/login')] public function login(Request $request): JsonResponse { $credentials = $request->validate([ 'username' => 'required|min:4|alphaDash', 'password' => 'required|min:4|alphaDash', ]); if (Auth::guard('users')->attempt($credentials, true)) { $data = $request->user('users') ->createToken($credentials['username']) ->toArray(); return $this->success($data, __('user.login_success')); } return $this->error(__('user.login_error')); } /** 用户注册 */ #[PostRoute('/register')] public function register(UserRegisterRequest $request): JsonResponse { $data = $request->validated(); $model = new UserModel; $model->username = $data['username']; $model->password = password_hash($data['password'], PASSWORD_DEFAULT); $model->email = $data['email']; if ($model->save()) { return $this->success(); } return $this->error('创建用户失败'); } /** 获取首页数据(公开接口):轮播图 + 宫格导航 */ #[GetRoute('/home', false)] public function home(): JsonResponse { $site_title = site_config('web.subtitle'); $carousel = SysCarouselModel::query() ->where('status', 0) ->orderBy('sort', 'desc') ->orderBy('id', 'desc') ->get(); $gridNav = SysGridNavModel::query() ->where('status', 0) ->orderBy('sort', 'desc') ->orderBy('id', 'desc') ->get(); return $this->success(compact('carousel', 'gridNav', 'site_title')); } }