diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 171de106..31378dd8 100755 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -22,28 +22,48 @@ class ClientController extends Controller } } } - $uri = ''; - if(strpos($_SERVER['HTTP_USER_AGENT'], 'Quantumult') !==false) { - header('subscription-userinfo: upload='.$user->u.'; download='.$user->d.';total='.$user->transfer_enable); - foreach($server as $item) { - $uri .= "vmess://".base64_encode($item->name.'= vmess, '.$item->host.', '.$item->port.', chacha20-ietf-poly1305, "'.$user->v2ray_uuid.'", over-tls='.($item->tls?"true":"false").', certificate=1, group='.config('v2panel.app_name', 'V2Panel'))."\r\n"; - } - }else{ - foreach($server as $item) { - $config = [ - "ps" => $item->name, - "add" => $item->host, - "port" => $item->port, - "id" => $user->v2ray_uuid, - "aid" => "2", - "net" => "tcp", - "type" => "chacha20-poly1305", - "host" => "", - "tls" => $item->tls?"tls":"", - ]; - $uri .= "vmess://".base64_encode(json_encode($config))."\r\n"; - } + if(strpos($_SERVER['HTTP_USER_AGENT'], 'Quantumult-X') !== -1) { + die($this->qutumultX($user, $server)); } - die(base64_encode($uri)); + if(strpos($_SERVER['HTTP_USER_AGENT'], 'Quantumult') !== -1) { + die($this->qutumult($user, $server)); + } + die($this->origin($user, $server)); + } + + private function qutumultX ($user, $server) { + $uri = ''; + foreach($server as $item) { + $uri .= "vmess=".$item->host.":".$item->port.", method=none, password=".$user->v2ray_uuid.", fast-open=false, udp-relay=false, tag=".$item->name."\r\n"; + } + return base64_encode($uri); + } + + private function qutumult ($user, $server) { + $uri = ''; + header('subscription-userinfo: upload='.$user->u.'; download='.$user->d.';total='.$user->transfer_enable); + foreach($server as $item) { + $uri .= "vmess://".base64_encode($item->name.'= vmess, '.$item->host.', '.$item->port.', chacha20-ietf-poly1305, "'.$user->v2ray_uuid.'", over-tls='.($item->tls?"true":"false").', certificate=1, group='.config('v2panel.app_name', 'V2Panel'))."\r\n"; + } + return base64_encode($uri); + } + + private function origin ($user, $server) { + $uri = ''; + foreach($server as $item) { + $config = [ + "ps" => $item->name, + "add" => $item->host, + "port" => $item->port, + "id" => $user->v2ray_uuid, + "aid" => "2", + "net" => "tcp", + "type" => "chacha20-poly1305", + "host" => "", + "tls" => $item->tls?"tls":"", + ]; + $uri .= "vmess://".base64_encode(json_encode($config))."\r\n"; + } + return base64_encode($uri); } } diff --git a/app/Http/Controllers/Passport/CommController.php b/app/Http/Controllers/Passport/CommController.php index a06cc89b..ce490e91 100644 --- a/app/Http/Controllers/Passport/CommController.php +++ b/app/Http/Controllers/Passport/CommController.php @@ -13,7 +13,7 @@ class CommController extends Controller { public function isEmailVerify () { return response([ - 'data' => (int)config('v2panel.email_verify', env('DEFAULT_EMAIL_VERIFY')) ? true : false + 'data' => (int)config('v2panel.email_verify', env('DEFAULT_EMAIL_VERIFY')) ? 1 : 0 ]); } diff --git a/app/Http/Controllers/Passport/ForgetController.php b/app/Http/Controllers/Passport/ForgetController.php index 28c74a8f..6ea24c65 100644 --- a/app/Http/Controllers/Passport/ForgetController.php +++ b/app/Http/Controllers/Passport/ForgetController.php @@ -6,18 +6,17 @@ use App\Http\Requests\Passport\ForgetIndex; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\User; -use Illuminate\Http\Exceptions\HttpResponseException; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Redis; class ForgetController extends Controller { public function index (ForgetIndex $request) { - $user = User::where('email', $request->input('email'))->first(); $redisKey = 'sendEmailVerify:' . $request->input('email'); if (Redis::get($redisKey) !== $request->input('email_code')) { abort(500, '邮箱验证码有误'); } + $user = User::where('email', $request->input('email'))->first(); $user->password = password_hash($request->input('password'), PASSWORD_DEFAULT); if (!$user->save()) { abort(500, '重置失败');