get('username',''); $password = $request->get('password',''); $user = User::query()->where("name",$userName)->first(); $response = [ 'message' => '请求成功', 'status_code' => 200, ]; //验证用户登录 if (!$user || !Hash::check(base64_decode($password),$user->password)){ $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 { $response["data"] = ["token"=>app("UserService")->getJWTToken($user,$privateKey), "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); } } 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); } }