middleware('auth:api')->except('login', 'register', 'shop', 'getConfig','version','versionwin','buy'); auth()->shouldUse('api'); } public function login(Request $request) { $validator = Validator::make($request->all(), [ 'email' => 'required|string', 'password' => 'required|string|min:6', ]); if ($validator->fails()) { return response()->json(['ret' => 0, 'msg' => $validator->errors()->all()], 200); } $token = Auth::attempt($validator->validated()); if(empty($token)){ return response()->json(['ret' => 0, 'msg' => '登陆错误'], 200); } $user = auth()->user(); //判断到期 $expireTime = $user["expired_at"]; if ($expireTime < date('Y-m-d H:i:s')){ return response()->json(['ret' => 445, 'msg' => "用户到期,请即使续费"], 200); } $userinfo = $user->profile(); if (empty($userinfo)){ return response()->json(['ret' => 0, 'msg' => "错误"]); } // 获取这个账号可用节点 $query = $user->nodes()->whereIsSubscribe(1); if ($this->subType === 1) { $query = $query->whereIn('type', [1, 4]); } elseif ($this->subType) { $query = $query->whereType($this->subType); } $nodeList = $query->orderByDesc('sort')->orderBy('id')->get(); if (empty($nodeList)) { return $this->failed(trans('error.subscribe.none')); } $servers = []; foreach ($nodeList as $node) { $servers[] = $node->config($user); } $servers = Arr::shuffle($servers); $clash_config = (new ClientController)->config("clash", $user, $servers); $data = [ 'ret' => 1, 'data' => [ 'access_token' => $token, 'user' => auth()->user()->profile(), 'affurl' => route('register', ['aff' => Auth::id()]), 'tutorial' => 'https://ruanjian.xiazi.buzz/', 'swoftdownload' => 'https://ruanjian.xiazi.buzz/', 'clash_config' => $clash_config ]]; return response()->json(['ret' => 1, 'msg' => "请求成功",'data'=>$data], 200); } }