systemConfig(); } // 登录页 public function index(Request $request, $code) { if (empty($code)) { return Redirect::to('login'); } // 校验合法性 $subscribe = UserSubscribe::where('code', $code)->with('user')->first(); if (empty($subscribe)) { exit('非法请求'); } $user = User::where('id', $subscribe->user_id)->whereIn('status', [0, 1])->where('enable', 1)->first(); if (empty($user)) { exit('非法请求'); } // 更新访问次数 $subscribe->increment('times', 1); // 记录每次请求 $log = new UserSubscribeLog(); $log->sid = $subscribe->id; $log->request_ip = $request->getClientIp(); $log->request_time = date('Y-m-d H:i:s'); $log->request_header = $request->headers; $log->save(); // 获取这个账号可用节点 $group_ids = SsGroup::where('level', '<=', $user->level)->select(['id'])->get(); if (empty($group_ids)) { exit(); } $node_ids = SsGroupNode::whereIn('group_id', $group_ids)->select(['node_id'])->get(); $nodeList = SsNode::whereIn('id', $node_ids)->get(); $scheme = ''; foreach ($nodeList as $node) { $obfs_param = $user->obfs_param ? $this->base64url_encode($user->obfs_param) : ''; //$protocol_param = $user->protocol_param ? $this->base64url_encode($user->protocol_param) : ''; // 生成ssr scheme $ssr_str = ''; $ssr_str .= $node->server . ':' . $user->port; $ssr_str .= ':' . $user->protocol . ':' . $user->method; $ssr_str .= ':' . $user->obfs . ':' . $this->base64url_encode($user->passwd); $ssr_str .= '/?obfsparam=' . $obfs_param; //$ssr_str .= '&protoparam=' . $protocol_param; $ssr_str .= '&remarks=' . $this->base64url_encode($node->name); $ssr_str .= '&group=' . $this->base64url_encode('VPN'); //$ssr_str .= '&udpport=0'; //$ssr_str .= '&uot=0'; $ssr_str = $this->base64url_encode($ssr_str); $scheme .= 'ssr://' . $ssr_str . "\n"; } exit($scheme); } }