하관우 하관우 03-21
2025-03-21 하관우 index.js 수정정
@005ce4bb954d16824524f6088bafc57432086538
client/resources/api/index.js
--- client/resources/api/index.js
+++ client/resources/api/index.js
@@ -2,60 +2,63 @@
 import store from "../../views/pages/AppStore";
 
 const apiClient = axios.create({
-  headers: {
-    'Content-Type': 'application/json; charset=UTF-8',
-  }
+    headers: {
+        'Content-Type': 'application/json; charset=UTF-8',
+    }
 });
 
 apiClient.interceptors.request.use(
-  config => {
-    config.headers.Authorization = store.state.authorization; // 요청 시 AccessToken 추가
-    return config;
-  },
-  error => {
-    return Promise.reject(error);
-  }
+    config => {
+        config.headers.Authorization = store.state.authorization; // 요청 시 AccessToken 추가
+        return config;
+    },
+    error => {
+        return Promise.reject(error);
+    }
 )
 
 apiClient.interceptors.response.use(
-  response => {
-    return response;
-  },
-  async error => {
-    if (error.response.status == 403 && error.response.data.message == '접근 권한이 없습니다.') {
-      window.history.back();
+    response => {
+        console.log('Response Status:', response.status); // 응답 상태 출력
+        return response;
+    },
+    async error => {
+        console.log('Error Response:', error.response.data); // 오류 응답 데이터 출력
+        console.log('Error Status:', error.response.status); // 오류 상태 출력
+        if (error.response.status == 403 && error.response.data.message == '접근 권한이 없습니다.') {
+            window.history.back();
+        }
+        const originalReq = error.config;
+        // 토큰의 만료기간이 끝난경우
+        if (error.response.status == 401 && error.response.data.message == '로그인 시간이 만료되었습니다.' && !originalReq._retry) {
+            originalReq._retry = true; // 재요청 시도(한번만 실행)
+            try {
+                const res = await axios.post('/refresh/tknReissue.json', {});
+                store.commit('setAuthorization', res.headers.authorization); // 새로 발급 받은 AccessToken 저장
+                originalReq.headers.Authorization = store.state.authorization; // 새로 발급 받은 AccessToken을 기존 요청에 추가
+                /** jwt토큰 디코딩 **/
+                const base64String = store.state.authorization.split('.')[1];
+                const base64 = base64String.replace(/-/g, '+').replace(/_/g, '/');
+                const jsonPayload = decodeURIComponent(atob(base64).split('').map(c => {
+                    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
+                }).join(''));
+                const mbr = JSON.parse(jsonPayload);
+                // const mbr = JSON.parse(decodeURIComponent(escape(window.atob(base64String)))); // jwt claim 추출
+                store.commit("setUserNm", mbr.userNm);
+                store.commit('setRoles', mbr.roles);
+                /** jwt토큰 디코딩 **/
+                return apiClient(originalReq); // 원래 요청 재시도 /pathname + search
+            } catch (refreshError) {
+                const redirect = window.location.pathname + window.location.search;
+                sessionStorage.setItem("redirect", redirect);
+                alert('세션이 종료되었습니다.\n로그인을 새로 해주세요.');
+                store.commit("setStoreReset");
+                window.location = '/login.page';
+                return Promise.reject(refreshError);
+            }
+        }
+        return Promise.reject(error);
     }
-    const originalReq = error.config;
-    // 토큰의 만료기간이 끝난경우
-    if (error.response.status == 401 && error.response.data.message == 'Token expired' && !originalReq._retry) {
-      originalReq._retry = true; // 재요청 시도(한번만 실행)
-      try {
-        const res = await axios.post('/refresh/tknReissue.json', {});
-        store.commit('setAuthorization', res.headers.authorization); // 새로 발급 받은 AccessToken 저장
-        originalReq.headers.Authorization = store.state.authorization; // 새로 발급 받은 AccessToken을 기존 요청에 추가
-        /** jwt토큰 디코딩 **/
-        const base64String = store.state.authorization.split('.')[1];
-        const base64 = base64String.replace(/-/g, '+').replace(/_/g, '/');
-        const jsonPayload = decodeURIComponent(atob(base64).split('').map(c => {
-          return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
-        }).join(''));
-        const mbr = JSON.parse(jsonPayload);
-        // const mbr = JSON.parse(decodeURIComponent(escape(window.atob(base64String)))); // jwt claim 추출
-        store.commit("setUserNm", mbr.userNm);
-        store.commit('setRoles', mbr.roles);
-        /** jwt토큰 디코딩 **/
-        return apiClient(originalReq); // 원래 요청 재시도 /pathname + search
-      } catch (refreshError) {
-        const redirect = window.location.pathname + window.location.search;
-        sessionStorage.setItem("redirect", redirect);
-        alert('세션이 종료되었습니다.\n로그인을 새로 해주세요.');
-        store.commit("setStoreReset");
-        window.location = '/login.page';
-        return Promise.reject(refreshError);
-      }
-    }
-    return Promise.reject(error);
-  }
 )
 
 export default apiClient;
(파일 끝에 줄바꿈 문자 없음)
Add a comment
List