feat : 로그인 기능 구현
SpecialSource Frontend CD / deploy (push) Successful in 9s

This commit is contained in:
2026-05-26 13:19:36 +09:00
parent eb7de0fc11
commit 671f53f428
5 changed files with 9 additions and 11 deletions
+6 -10
View File
@@ -63,7 +63,7 @@
class="login-input"
placeholder="ENTER ACCESS ID"
@keyup.enter="handleLoginSubmit"
/>
>
</div>
<div class="login-input-group">
<label class="login-label">ACCESS KEY_</label>
@@ -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.`);