valid([ "email" => "required|email", "source" => "required", ]); return $this->ok(app(EmailService::class)->emailCaptcha($params['email'], $params['source'])); } public function profile() { /** @var User $user */ $user = Auth::user(); return $this->ok([ "id" => $user->id, "token" => app(AuthService::class)->encryptToken($user->id), "name" => $user->name, "avatar" => $user->avatar, "company" => [ "id" => optional($user->company)->id ?? 0, "name" => optional($user->company)->name ?? "", ], ]); } public function register() { $params = $this->valid([ "email" => "required|email", "phone" => ["required", new Phone()], "password" => "required", "captcha" => "required", ]); if (!app(CaptchaService::class)->checkCaptcha($params['email'], $params['captcha'])) { throw new ClientException("验证码错误"); } $user = app(AuthService::class)->register($params); return $this->ok([ "token" => app(AuthService::class)->encryptToken($user->id), "name" => $user->name, "phone" => $user->phone, ]); } public function login() { $params = $this->valid([ "userinfo" => "required", "password" => "required", ]); app(AuthService::class)->login($params); return $this->ok([ "token" => "token", "name" => "", "phone" => "", ]); } public function resetPassword() { return $this->ok([ "token" => "token", "name" => "", "phone" => "", ]); } }