_valid([ "code.require" => trans("empty.require"), "pid.default" => 0 ],$request->method()); if (!is_array($param)) return error($param); $userinfo = (new Crypt([ "appid" => sConf("wechat.mini_appid"), "appsecret" => sConf("wechat.mini_secret") ]))->session($param['code']); if (!isset($userinfo['openid'])) return error("获取数据失败"); $map = ['openid' => $userinfo['openid']]; $userOpen = $this->model->where($map)->findOrEmpty(); if ($userOpen->isEmpty()) return error("new"); $userAuth = get_object_vars(AuthMode::guard("member")->login($userOpen->toArray())); return success("ok",['token' => $userAuth]); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } #[Route(path: "login",methods: "post")] public function loginMobile(Request $request): Response { try { $param = $this->_valid([ "code.require" => trans("empty.require"), "login.require" => trans("empty.require"), "pid.default" => 0 ],$request->method()); if (!is_array($param)) return error($param); $userinfo = (new Crypt([ "appid" => sConf("wechat.mini_appid"), "appsecret" => sConf("wechat.mini_secret") ]))->session($param['login']); if (!isset($userinfo['openid'])) return error("获取数据失败"); $mobile = (new UserInfo([ "appid" => sConf("wechat.mini_appid"), "appsecret" => sConf("wechat.mini_secret") ]))->getPhoneNumber($param['code']); if ($mobile['errcode'] <> 0) return error($mobile['errmsg']); $map = ['openid' => $userinfo['openid'],'mobile' => $mobile['phone_info']['purePhoneNumber']]; $userOpen = $this->model->where($map)->findOrEmpty(); if ($userOpen->isEmpty()) { $userOpen->insertGetId([ 'openid' => $userinfo['openid'], 'parent' => $param['pid'], 'uuid' => CodeExtend::uniqidNumber(), 'mobile' => $mobile['phone_info']['purePhoneNumber'], "create_ip" => $request->getRealIp(), "nickname" => "微信用户", "headimg" => "https://blue-data.oss-cn-guangzhou.aliyuncs.com/logo.png" ]); $userOpen = $this->model->where($map)->findOrEmpty(); } $userAuth = get_object_vars(AuthMode::guard("member")->login($userOpen->toArray())); return success("ok",['token' => $userAuth]); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }