Browse Source

fix: 修复之前错误地修复未登录时显示404导致回到主页时不保存登陆状态的问题

Jinyao 5 years ago
parent
commit
e5e9bb4489
3 changed files with 17 additions and 7 deletions
  1. 3 2
      src/App.vue
  2. 3 0
      src/store/modules/user.ts
  3. 11 5
      src/utils/axios.ts

+ 3 - 2
src/App.vue

@@ -23,10 +23,11 @@ export default defineComponent({
     const token = getVariableFromQueryString('id_token');
     if (token) {
       TokenDispatcher.updateToken(token);
-      UserDispatcher.updateUserInfo();
-      WorkspaceDispatcher.refreshProjectList();
     }
 
+    UserDispatcher.updateUserInfo();
+    WorkspaceDispatcher.refreshProjectList();
+
     onMounted(() => {
       window.onbeforeunload = () => {
         localStorage.setItem('workspace', JSON.stringify(store.state.workspace));

+ 3 - 0
src/store/modules/user.ts

@@ -14,6 +14,9 @@ const DEFAULT: UserState = {
 const actions: ActionTree<UserState, RootState> = {
   async updateUserInfo({ commit }) {
     const userinfo = await UserAPI.getUserInfo();
+    if (!userinfo) {
+      return;
+    }
     commit('updateUserInfo', userinfo);
   },
   userLogOut({ commit }) {

+ 11 - 5
src/utils/axios.ts

@@ -20,6 +20,10 @@ const _axios = axios.create(config);
 
 _axios.interceptors.request.use(
   (config) => {
+    const token = localStorage.getItem('token');
+    if (!token) {
+      return Promise.reject({message:'未登录', hidden: true});
+    }
     config.headers.Authorization = localStorage.getItem('token');
     return config;
   },
@@ -40,11 +44,13 @@ _axios.interceptors.response.use(
   },
   (error) => {
     // Do something with response error
-    ElMessage({
-      type: 'error',
-      showClose: true,
-      message: '接口出错,错误信息:' + error.message
-    })
+    if (!error.hidden) {
+      ElMessage({
+        type: 'error',
+        showClose: true,
+        message: '接口出错,错误信息:' + error.message
+      })
+    }
     Promise.reject(error)
   }
 );