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
}
}