diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..3452b5c --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VITE_API_URL= \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..1c9e865 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VITE_API_URL=http://192.168.0.215:18080 \ No newline at end of file diff --git a/public/ico-new.png b/public/ico-new.png new file mode 100644 index 0000000..8e3aa0f Binary files /dev/null and b/public/ico-new.png differ diff --git a/src/views/Main.vue b/src/views/Main.vue index df4b8d0..cb9c808 100644 --- a/src/views/Main.vue +++ b/src/views/Main.vue @@ -63,7 +63,7 @@ class="login-input" placeholder="ENTER ACCESS ID" @keyup.enter="handleLoginSubmit" - /> + >
@@ -133,8 +133,8 @@ const terminalRef = ref(null); const termInstance = ref(null); // 로그인 폼 양방향 바인딩 변수 -const loginId = ref(''); -const loginPw = ref(''); +const loginId = ref('admin'); +const loginPw = ref('1234'); // 메뉴 및 인증 토큰 반응형 변수화 const activeMenu = ref('main'); @@ -197,31 +197,27 @@ const handleLoginSubmit = async () => { } try { - // 백엔드 포트인 18080 서버로 인증 요청을 전송합니다. - const response = await axios.post('http://192.168.0.215:18080/api/auth/login', { + const apiBaseUrl = import.meta.env.VITE_API_URL || ''; + + const response = await axios.post(`${apiBaseUrl}/api/login`, { username: loginId.value, password: loginPw.value }); if (response.data && response.data.token) { - // 1. 토큰 저장 및 반응형 상태 동기화 localStorage.setItem('token', response.data.token); authToken.value = response.data.token; - // 2. 터미널에 성공 스크립트 출력 if (termInstance.value) { termInstance.value.echo(`[[b;green;][SUCCESS]] ACCESS GRANTED. CREDENTIALS VERIFIED.`); - termInstance.value.echo(`[[b;green;][SYS]] WELCOME BACK, CENTRAL ADMIN AUTHORIZED.`); } - // 3. 폼 초기화 및 홈화면(유튜브)으로 화면 즉시 복귀 loginId.value = ''; loginPw.value = ''; activeMenu.value = 'main'; } } catch (error) { console.error("로그인 실패:", error); - // 실패 시 터미널 경고음 효과 및 붉은색 에러 로그 출력 if (termInstance.value) { termInstance.value.echo(`[[b;red;][CRITICAL ERROR]] ACCESS DENIED! INVALID ACCESS KEY.`); termInstance.value.echo(`[[b;red;][WARN]] IP LOGGED. UNAUTHORIZED ATTEMPT REGISTERED.`); diff --git a/vite.config.js b/vite.config.js index a311275..6db79df 100644 --- a/vite.config.js +++ b/vite.config.js @@ -13,7 +13,7 @@ export default defineConfig({ proxy: { // 로컬에서 /api로 요청을 보내면 백엔드 NAS 서버로 주소를 전달해 줍니다. '/api': { - target: 'http://192.168.0.215:18080', + target: 'http://localhost:8080', changeOrigin: true } }