session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); return view('user/regedit'); } public function login(Request $request) { View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); return view('user/login'); } public function logout(Request $request) { session(['nickname' => null, 'user_id' => null]); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); return msg('退出成功', "您可以继续操作。"); } public function enter(Request $request) { View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $username = $request->post('username', ''); $password = $request->post('password', ''); if (empty($username) || empty($password)) { return msg('请输入用户名或密码', "请输入用户名或密码后继续。", "/user/login", "返回"); } $user = User::where('username', $username)->first(); if (!$user) { return msg('用户不存在', "请输入正确的用户名后继续。", "/user/login", "返回"); } if (!password_verify($password, $user->password)) { return msg('密码错误', "请输入正确的密码后继续。", "/user/login", "返回"); } session([ 'nickname' => $user->nickname, 'user_id' => $user->id ]); $logs = new UsersLog(); $logs->user_id = $user->id; $logs->ip = $request->getRemoteIp() . ":" . $request->getRemotePort(); $logs->save(); return msg('登录成功', "您可以继续操作。"); } public function password(Request $request): \support\Response { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); return view('user/password'); } public function update(Request $request) { // 修改密码 if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); $password = $request->post('password', ''); $repassword = $request->post('confirmPassword', ''); if (empty($password)) { return msg('请输入密码', "请输入密码后继续。", "/user/password", "返回"); } if (strlen($password) < 6 || strlen($password) > 16) { return msg('密码长度为6-16位', "请输入6-16位密码后继续。", "/user/password", "返回"); } if ($password !== $repassword) { return msg('两次密码不一致', "请输入两次密码后继续。", "/user/password", "返回"); } $user = User::where('id', session('user_id'))->first(); $user->password = password_hash($password, PASSWORD_DEFAULT); $user->save(); session(['nickname' => null, 'user_id' => null]); return msg('修改成功', "请登录后继续。", "/user/login", "登录"); } public function store(Request $request) { View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $agreement = $request->post('agreement', 'off'); if ($agreement !== 'on') { return msg('请先同意用户协议', "请勾选用户协议后继续。", "/user/regedit", "返回"); } $username = $request->post('username', ''); $nickname = $request->post('nickname', ''); $nickname = empty($nickname) ? '用户' . uniqid() : $nickname; $password = $request->post('password', ''); $repassword = $request->post('confirmPassword', ''); if (empty($username) || empty($password)) { return msg('请输入用户名或密码', "请输入用户名或密码后继续。", "/user/regedit", "返回"); } if (strlen($username) < 4 || strlen($username) > 16) { return msg('用户名长度为4-16位', "请输入4-16位用户名后继续。", "/user/regedit", "返回"); } if (strlen($password) < 6 || strlen($password) > 16) { return msg('密码长度为6-16位', "请输入6-16位密码后继续。", "/user/regedit", "返回"); } if ($password !== $repassword) { return msg('两次密码不一致', "请输入两次密码后继续。", "/user/regedit", "返回"); } $user = User::where('username', $username)->first(); if ($user) { return msg('用户已存在', "请输入其他用户名后继续。", "/user/regedit", "返回"); } $user = new User(); $user->username = $username; $user->nickname = $nickname; $user->password = password_hash($password, PASSWORD_DEFAULT); $user->save(); return msg('注册成功', "请登录后继续。", "/user/login", "登录"); } public function token(Request $request) { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $user = User::where('id', session('user_id'))->first(); if (!$user) { session(['nickname' => null, 'user_id' => null]); return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录"); } $users_token = UsersToken::where('user_id', $user->id)->first(); if (!$users_token) { $users_token = new UsersToken(); $users_token->user_id = $user->id; $uid_md5 = md5($user->id . uniqid()); $users_token->token = strtoupper($user->id) . $uid_md5; $users_token->save(); } return view('user/token', [ 'token' => $users_token->token, 'updateTime' => $users_token->updated_at ]); } public function tokenUpdate(Request $request) { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $user = User::where('id', session('user_id'))->first(); if (!$user) { session(['nickname' => null, 'user_id' => null]); return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录"); } $users_token = UsersToken::where('user_id', $user->id)->first(); if (!$users_token) { $users_token = new UsersToken(); $users_token->user_id = $user->id; $uid_md5 = md5($user->id . uniqid()); $users_token->token = strtoupper($user->id) . $uid_md5; $users_token->save(); return msg('更新成功', "请使用新的密钥访问所有应用。", "/user/token", "我的密钥"); } $users_token->token = strtoupper($user->id) . md5($user->id . uniqid()); $users_token->save(); return msg('更新成功', "请使用新的密钥访问所有应用。", "/user/token", "我的密钥"); } public function cleanStart(Request $request) { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $user = User::where('id', session('user_id'))->first(); if (!$user) { session(['nickname' => null, 'user_id' => null]); return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录"); } $smsContent = SmsContent::where('user_id', $user->id)->get(); foreach ($smsContent as $item) { $item->delete(); } return msg('清除成功', "所有短信已清除。", "/user/clean", "返回"); } public function clean(Request $request) { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $user = User::where('id', session('user_id'))->first(); if (!$user) { session(['nickname' => null, 'user_id' => null]); return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录"); } return view('user/clean'); } public function logs(Request $request) { if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录'); View::assign(["nickname" => session('nickname', "未登录")]); View::assign([ "header" => view('common/header')->rawBody(), "footer" => view('common/footer')->rawBody() ]); $user = User::where('id', session('user_id'))->first(); if (!$user) { session(['nickname' => null, 'user_id' => null]); return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录"); } $logs = UsersLog::where('user_id', $user->id)->orderBy('id', 'desc')->paginate(100); return view('user/logs', [ 'logs' => $logs ]); } }