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); } } 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); } }