alroyso 1 день тому
батько
коміт
6feb46d31f
3 змінених файлів з 66 додано та 5 видалено
  1. 13 4
      .idea/workspace.xml
  2. 52 0
      app/Http/Controllers/Api/Client/V4Controller.php
  3. 1 1
      routes/api.php

+ 13 - 4
.idea/workspace.xml

@@ -6,8 +6,8 @@
   <component name="ChangeListManager">
     <list default="true" id="09451f28-815a-407f-8951-727d305b50a4" name="Changes" comment="Changes">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/UserController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/UserController.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/resources/views/user/profile.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/profile.blade.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Api/Client/V4Controller.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Api/Client/V4Controller.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -377,7 +377,8 @@
       <workItem from="1741754825074" duration="1828000" />
       <workItem from="1741756792720" duration="702000" />
       <workItem from="1741757796035" duration="7383000" />
-      <workItem from="1741765840066" duration="6415000" />
+      <workItem from="1741765840066" duration="6426000" />
+      <workItem from="1741836315642" duration="9892000" />
     </task>
     <task id="LOCAL-00001" summary="Changes">
       <option name="closed" value="true" />
@@ -659,7 +660,15 @@
       <option name="project" value="LOCAL" />
       <updated>1741765285372</updated>
     </task>
-    <option name="localTasksCounter" value="36" />
+    <task id="LOCAL-00036" summary="Changes">
+      <option name="closed" value="true" />
+      <created>1741775063611</created>
+      <option name="number" value="00036" />
+      <option name="presentableId" value="LOCAL-00036" />
+      <option name="project" value="LOCAL" />
+      <updated>1741775063611</updated>
+    </task>
+    <option name="localTasksCounter" value="37" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">

+ 52 - 0
app/Http/Controllers/Api/Client/V4Controller.php

@@ -10,6 +10,7 @@ use App\Models\User;
 use Illuminate\Http\Request;
 use DB;
 use Response;
+use Validator;
 
 class V4Controller  extends Controller
 {
@@ -19,7 +20,58 @@ class V4Controller  extends Controller
         auth()->shouldUse('api');
     }
 
+    public function login(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'email' => 'required|email',
+            'password' => 'required|string|min:6',
+        ]);
+        if ($validator->fails()) {
+            return response()->json(['ret' => 0, 'msg' => $validator->errors()->all()], 200);
+        }
+
+        if ($token = auth()->attempt($validator->validated())) {
+            return $this->createNewToken($request,$token);
+        }
+
+        return response()->json(['ret' => 0, 'msg' => "账号或密码错误"], 200);
+    }
+    protected function createNewToken($request,$token)
+    {
+        $user = auth()->user();
+        //判断到期
+        $expireTime = $user["expired_at"];
+
+        if ($expireTime < date('Y-m-d H:i:s')){
+            return response()->json(['ret' => 445, 'msg' => "用户到期,请即使续费"], 200);
+        }
 
+        $usedTraffic = $user->usedTraffic();
+        if ($usedTraffic >= $user["transfer_enable"]){
+            return response()->json(['ret' => 446, 'msg' => "流量已经用完,"], 200);
+        }
+
+        $userinfo = $user->profile();
+        if (empty($userinfo)){
+            return response()->json(['ret' => 0, 'msg' => "错误"]);
+        }
+
+        $data = [
+            'access_token' => $token,
+            'user'         => $userinfo,
+            'tutorial' => 'https://ruanjian.xiazi.buzz/',
+            'swoftdownload' => 'https://app.xiazai3.xyz/',
+            'affurl' => 'https://user.viptwo.xyz/logintoreferral?email='.$request->input('email') . '&password='.$request->input('password'),
+            'user_login_url' => 'https://user.viptwo.xyz/logina?email='.$request->input('email') . '&password='.$request->input('password'),
+            'user_buy' => 'https://user.viptwo.xyz/logina?email='.$request->input('email') . '&password='.$request->input('password'),
+            'user_ticket' => 'https://user.viptwo.xyz/logintoticket?email='.$request->input('email') . '&password='.$request->input('password'),
+            'clash_config' => route('SProxy_config', ['code'=>$userinfo['code']]),
+            'subUrl'      => sysConfig('subscribe_domain') . "/s/" . $userinfo['code'],
+            'subUrl2'      => "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $userinfo['code'],
+        ];
+
+        return response()->json(['ret' => 1, 'msg' => "请求成功",'data'=>$data], 200);
+    }
     //刷新用户信息
     public function GetUserinfo(Request $request)
     {

+ 1 - 1
routes/api.php

@@ -104,7 +104,7 @@ Route::group(['namespace' => 'Api\Client', 'middleware' => 'api', 'prefix' => 'c
 
 
 Route::group(['namespace' => 'Api\Client', 'middleware' => 'api', 'prefix' => 'client/v4'], function () {
-//    Route::post('login', 'V3Controller@login'); // 登陆
+    Route::post('login', 'V4Controller@login'); // 登陆
 //    Route::get('SProxy_config', 'V3Controller@ClashConfig')->name('SProxy_config');; // 登陆
 //    Route::get('authUser', 'V3Controller@authUser'); // 验证用户
 //    Route::get('refresh', 'V3Controller@refresh'); // 刷新令牌