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->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) { // 生成ssr scheme $ssr_str = ''; $ssr_str .= $node->server . ':' . $user->port; $ssr_str .= ':' . $user->protocol . ':' . $user->method; $ssr_str .= ':' . $user->obfs . ':' . base64_encode($user->passwd); $ssr_str .= '/?obfsparam=' . $user->obfs_param; $ssr_str .= '&=protoparam' . $user->protocol_param; $ssr_str .= '&remarks=' . base64_encode($node->name); $ssr_str = $this->base64url_encode($ssr_str); $scheme[] = 'ssr://' . $ssr_str; } foreach ($scheme as $vo) { echo $vo . "\n"; } exit(); } }