12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- namespace App\Http\Controllers\Api\Client;
- use App\Http\Controllers\ClientController;
- use App\Http\Controllers\Controller;
- use App\Models\User;
- use Arr;
- use Auth;
- use Illuminate\Http\Request;
- use Session;
- use Illuminate\Support\Facades\Redis;
- use App\Models\Sms;
- use Validator;
- class PcController extends Controller
- {
- public function __construct()
- {
- $this->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);
- }
- }
|