hmkim 05-16
250516 김혜민 타임아웃으로 인한 로그아웃 에러 수정
@3ec7036e8fefeb98deca6cf0692614afa4ffe1ce
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -168,31 +168,34 @@
 const AppRouter = createRouter({ history: createWebHistory(), routes, });
 
 AppRouter.beforeEach(async (to, from, next) => {
-  const userId = store.state.loginUser;
-  if (userId == null) {
-    if (to.path == "/login.page") {
-      next();
-    } else {
-      axios({
-        url: "/getLoginInfo.json",
-        method: "post",
-        headers: { "Content-Type": "application/json; charset=UTF-8" },
-      })
-        .then(function (response) {
-          if (response.data.checkMessage.status > 0) {
-            store.commit("setLoginUser", response.data.resultData.LoginUserInfo);
-            userAuthCheck(to, from, next);
-          } else {
-            next("/login.page");
-          }
-        })
-        .catch(function (error) {
-          alert("에러가 발생했습니다. 관리자에게 문의해 주세요.");
-        });
-    }
-  } else {
-    userAuthCheck(to, from, next);
+  // 로그인 페이지는 항상 접근 가능
+  if (to.path == "/login.page") {
+    return next();
   }
+  
+  // 모든 페이지 이동 시 로그인 상태 체크 (세션 만료 체크 포함)
+  axios({
+    url: "/getLoginInfo.json",
+    method: "post",
+    headers: { "Content-Type": "application/json; charset=UTF-8" },
+  })
+    .then(function (response) {
+      if (response.data.checkMessage.status > 0) {
+        // 로그인 정보 갱신
+        store.commit("setLoginUser", response.data.resultData.LoginUserInfo);
+        // 권한 체크 후 라우팅
+        userAuthCheck(to, from, next);
+      } else {
+        // 로그인 상태가 아니거나 세션이 만료된 경우
+        store.commit("setLoginUser", null); // 로그인 정보 초기화
+        next("/login.page");
+      }
+    })
+    .catch(function (error) {
+      alert("에러가 발생했습니다. 관리자에게 문의해 주세요.");
+      store.commit("setLoginUser", null); // 로그인 정보 초기화
+      next("/login.page");
+    });
 });
 
 export default AppRouter;
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/data/HostManagement.vue
--- client/views/pages/data/HostManagement.vue
+++ client/views/pages/data/HostManagement.vue
@@ -108,7 +108,7 @@
                     <td>
                       <select name="" id="host_protocol" class="full-input" v-model="hostData.host_protocol">
                         <option :value="null" disabled> 프로토콜을 선택해주세요. </option>
-                        <option value="ftp">FTP - 파일 전송 프로토콜</option>
+                        <!-- <option value="ftp">FTP - 파일 전송 프로토콜</option> -->
                         <option value="sftp"> SFTP - SSH 파일 전송 프로토콜 </option>
                       </select>
                     </td>
Add a comment
List