get('username',''); $password = $request->get('password',''); $users = User::query()->where("name",$userName)->orWhereHas("userDetail",function ($query)use($userName){ $query->where("mobile_phone",$userName); })->get(); $response = [ 'message' => '请求成功', 'status_code' => 200, ]; $user = null; foreach ($users as $item){ if (Hash::check(base64_decode($password),$item->password)){ $user = $item; break; } } //验证用户登录 if (!$user){ $response["message"] = "用户名或密码错误"; $response["status_code"] = 410; return response()->json($response); } //获取公私钥 try { $privateKey = file_get_contents(base_path().'/private.pem'); }catch (\Exception $e){ $response["status_code"] = 410; if (strpos($e->getMessage(),"No such file or directory")!==false)$response["message"] = "服务器异常,资源丢失"; else $response["message"] = "访问某些资源失败"; return response()->json($response); } try { $token = app("UserService")->getJWTToken($user,$privateKey); //单点登录标记 app("UserService")->setSingleTag($user->id,$token); $response["data"] = ["token"=>$token, "menu"=>$this->getMenu($user),"info"=>["id"=>$user->id,"name"=>$user->name]]; app("UserService")->setOrRefreshCache($user); return response()->json($response); }catch (\Exception $e){ $response["status_code"] = 409; $response["message"] = "资源异常,无法反馈"; return response()->json($response); } } public function getUserInfo(Request $request) { $userName = $request->get('username',''); $password = $request->get('password',''); $users = User::query()->where("name",$userName)->orWhereHas("userDetail",function ($query)use($userName){ $query->where("mobile_phone",$userName); })->get(); $user = null; foreach ($users as $item){ if (Hash::check($password,$item->password)){ $user = $item; break; } } if (!$user){ return response("用户不存在或密码错误", 401); } $user->load("userDetail"); return response()->json([ "username" => $user->name, "name" => $user->userDetail->full_name ?? "", "sex" => $user->userDetail->gender ?? "", "id_card" => $user->userDetail->identity_number ?? "", "phone" => $user->userDetail->mobile_phone ?? "", ]); } public function resetNameOrPwd(Request $request) { $userId = $request->get('id'); $userName = $request->get('username'); $password = $request->get('password'); $user = null; if (!$userId || (!$userName && !$password) || !$user = User::query()->find($userId)){ return response("参数错误或用户不存在", 401); } $update = []; if ($userName) { $update["name"] = $userName; } if ($password) { $update["password"] = Hash::make($password); } if ($user->update($update)) { return response("OK"); } return response("用户信息修改失败", 410); } private function getMenu($user) { Auth::setUser($user); $authorities = app("AuthorityService")->getUserAndroidAuthority(); $result = []; foreach (app("AuthorityService")->format($authorities) as $authority){ foreach ($authority["child"] as $authorityOne){ $item = []; foreach ($authorityOne["child"] as $authorityTwo){ $item[] = $authorityTwo["name"]; } $result[$authorityOne["name"]] = $item; } } return json_encode($result,JSON_UNESCAPED_UNICODE); } }