guanchunjie преди 3 години
родител
ревизия
ae92997fd5
променени са 7 файла, в които са добавени 106 реда и са изтрити 140 реда
  1. 16 1
      src/api/api.js
  2. 31 11
      src/permission.js
  3. 4 6
      src/store/getters.js
  4. 9 66
      src/store/modules/user.js
  5. 5 5
      src/utils/request.js
  6. 15 26
      src/views/teacher-dev/index.vue
  7. 26 25
      src/views/teacher-devEntering/index.vue

+ 16 - 1
src/api/api.js

@@ -51,7 +51,22 @@ export function getContent(MethodName, UserCode, UserType, SessionID, data) {
   })
 }
 // 验证是否登录
-export function VerifyLogin(data) {
+export function VerifyLogin() {
+  let userInfor = getToken()
+  let UserCode = '',
+    UserType = '',
+    SessionID = ''
+  if (userInfor) {
+    userInfor = JSON.parse(getToken())
+    UserCode = userInfor.user_code;
+    UserType = userInfor.user_type;
+    SessionID = userInfor.session_id;
+  }
+  let data = {
+    userCode: UserCode,
+    userType: UserType,
+    sessionId: SessionID,
+  }
   return request({
     url: `/GCLSTCServer/login?UserCode=${UserCode}&UserType=${UserType}&SessionID=${SessionID}`,
     method: "post",

+ 31 - 11
src/permission.js

@@ -5,6 +5,7 @@ import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
 import { getToken } from '@/utils/auth' // get token from cookie
 import getPageTitle from '@/utils/get-page-title'
+import Cookies from 'js-cookie';
 
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
@@ -17,20 +18,38 @@ router.beforeEach(async (to, from, next) => {
   document.title = getPageTitle(to.meta.title)
   //next();
   NProgress.done()
-  const hasToken = getToken()
-
+  const hasToken = getToken();
+  const jId = Cookies.get('JSESSSIONID');
   if (hasToken) {
-    if (to.path === '/login') {
-      // if is logged in, redirect to the home page
-      next({ path: '/' })
-      NProgress.done()
+    if (!jId) {
+      store.dispatch('user/setJsessionId').then(res => {
+        if (to.path === '/login') {
+          // if is logged in, redirect to the home page
+          next({ path: '/' })
+          NProgress.done()
+        } else {
+          try {
+            next()
+          } catch (error) {
+            Message.error(error || 'Has Error')
+            next(`/login?redirect=${to.path}`)
+            NProgress.done()
+          }
+        }
+      })
     } else {
-      try {
-        next()
-      } catch (error) {
-        Message.error(error || 'Has Error')
-        next(`/login?redirect=${to.path}`)
+      if (to.path === '/login') {
+        // if is logged in, redirect to the home page
+        next({ path: '/' })
         NProgress.done()
+      } else {
+        try {
+          next()
+        } catch (error) {
+          Message.error(error || 'Has Error')
+          next(`/login?redirect=${to.path}`)
+          NProgress.done()
+        }
       }
     }
   } else {
@@ -44,6 +63,7 @@ router.beforeEach(async (to, from, next) => {
       NProgress.done()
     }
   }
+
 })
 
 router.afterEach(() => {

+ 4 - 6
src/store/getters.js

@@ -1,10 +1,8 @@
 const getters = {
-    sidebar: state => state.app.sidebar,
-    device: state => state.app.device,
-    token: state => state.user.token,
-    avatar: state => state.user.avatar,
-    name: state => state.user.name,
-    language_type: state => state.lang.language_type,
+  sidebar: state => state.app.sidebar,
+  device: state => state.app.device,
+  JSESSSIONID: state => state.user.JSESSSIONID,
+  language_type: state => state.lang.language_type,
 
 }
 export default getters

+ 9 - 66
src/store/modules/user.js

@@ -1,91 +1,34 @@
-import { login, logout, getInfo } from '@/api/user'
-import { getToken, setToken, removeToken } from '@/utils/auth'
-import { resetRouter } from '@/router'
+import { VerifyLogin } from '@/api/api'
+import Cookies from 'js-cookie'
 
 const getDefaultState = () => {
   return {
-    token: getToken(),
-    name: '',
-    avatar: ''
+    JSESSSIONID: Cookies.get('JSESSIONID') || '',
   }
 }
 
 const state = getDefaultState()
 
 const mutations = {
-  RESET_STATE: (state) => {
-    Object.assign(state, getDefaultState())
-  },
-  SET_TOKEN: (state, token) => {
-    state.token = token
-  },
-  SET_NAME: (state, name) => {
-    state.name = name
-  },
-  SET_AVATAR: (state, avatar) => {
-    state.avatar = avatar
+  RESET_JSESSIONID: (state, JSESSSIONID) => {
+    Cookies.set('JSESSIONID', JSESSSIONID);
+    state.JSESSSIONID = JSESSSIONID
   }
 }
 
 const actions = {
   // user login
-  login({ commit }, userInfo) {
-    const { username, password } = userInfo
+  setJsessionId({ commit }) {
     return new Promise((resolve, reject) => {
-      login({ username: username.trim(), password: password }).then(response => {
+      VerifyLogin().then(response => {
         const { data } = response
-        commit('SET_TOKEN', data.token)
-        setToken(data.token)
+        commit('RESET_JSESSIONID', data.JSESSSIONID)
         resolve()
       }).catch(error => {
         reject(error)
       })
     })
   },
-
-  // get user info
-  getInfo({ commit, state }) {
-    return new Promise((resolve, reject) => {
-      getInfo(state.token).then(response => {
-        const { data } = response
-
-        if (!data) {
-          return reject('Verification failed, please Login again.')
-        }
-
-        const { name, avatar } = data
-
-        commit('SET_NAME', name)
-        commit('SET_AVATAR', avatar)
-        resolve(data)
-      }).catch(error => {
-        reject(error)
-      })
-    })
-  },
-
-  // user logout
-  logout({ commit, state }) {
-    return new Promise((resolve, reject) => {
-      logout(state.token).then(() => {
-        removeToken() // must remove  token  first
-        resetRouter()
-        commit('RESET_STATE')
-        resolve()
-      }).catch(error => {
-        reject(error)
-      })
-    })
-  },
-
-  // remove token
-  resetToken({ commit }) {
-    return new Promise(resolve => {
-      removeToken() // must remove  token  first
-      commit('RESET_STATE')
-      resolve()
-    })
-  }
 }
 
 export default {

+ 5 - 5
src/utils/request.js

@@ -71,11 +71,11 @@ service.interceptors.response.use(
         showClose: true,
         duration: 0
       });
-      // if (process.env.NODE_ENV == "development") {
-      //     router.push("/login")
-      // } else {
-      //     window.location.href = "/"
-      // }
+      if (process.env.NODE_ENV == "development") {
+        router.push("/login")
+      } else {
+        window.location.href = "/"
+      }
       return false
     } else {
       console.log("成功返回数据");

+ 15 - 26
src/views/teacher-dev/index.vue

@@ -194,32 +194,21 @@ export default {
     //     this.$router.push({ path: "/" });
     //   }
     // }
-    let token = getToken();
-    this.loading = true;
-    let userCode = "",
-      userType = "",
-      sessionId = "";
-    if (token) {
-      token = JSON.parse(token);
-      userCode = token.user_code;
-      userType = token.user_type;
-      sessionId = token.session_id;
-    }
-    // 验证登录拿到JSESSIONID放到cookies中后面的接口用来验证用户身份
-    VerifyLogin({
-      userCode,
-      userType,
-      sessionId,
-    })
-      .then((res) => {
-        if (res.data?.JSESSSIONID) {
-          Cookies.set("JSESSIONID", res.data.JSESSSIONID);
-          this.getData();
-        }
-      })
-      .catch((res) => {
-        this.loading = false;
-      });
+    // this.loading = true;
+    // // 验证登录拿到JSESSIONID放到cookies中后面的接口用来验证用户身份
+    // VerifyLogin()
+    //   .then((res) => {
+    //     if (res.data?.JSESSSIONID) {
+    //       Cookies.set("JSESSIONID", res.data.JSESSSIONID);
+    //
+    //     }
+    //   })
+    //   .catch((res) => {
+    //     this.loading = false;
+    //   });
+  },
+  mounted() {
+    this.getData();
   },
 };
 </script>

+ 26 - 25
src/views/teacher-devEntering/index.vue

@@ -346,31 +346,32 @@ export default {
     },
   },
   mounted() {
-    this.loading = true;
-    let userInfor = JSON.parse(getToken());
-    let userCode = "",
-      userType = "",
-      sessionId = "";
-    if (userInfor) {
-      userCode = userInfor.user_code;
-      userType = userInfor.user_type;
-      sessionId = userInfor.session_id;
-    }
-    // 验证登录拿到JSESSIONID放到cookies中后面的接口用来验证用户身份
-    VerifyLogin({
-      userCode,
-      userType,
-      sessionId,
-    })
-      .then((res) => {
-        if (res.code != -1) {
-          Cookies.set("JSESSIONID", res.data.JSESSSIONID);
-          this.getdata();
-        }
-      })
-      .catch(() => {
-        this.loading = false;
-      });
+    this.getdata();
+    // this.loading = true;
+    // let userInfor = JSON.parse(getToken());
+    // let userCode = "",
+    //   userType = "",
+    //   sessionId = "";
+    // if (userInfor) {
+    //   userCode = userInfor.user_code;
+    //   userType = userInfor.user_type;
+    //   sessionId = userInfor.session_id;
+    // }
+    // // 验证登录拿到JSESSIONID放到cookies中后面的接口用来验证用户身份
+    // VerifyLogin({
+    //   userCode,
+    //   userType,
+    //   sessionId,
+    // })
+    //   .then((res) => {
+    //     if (res.code != -1) {
+    //       Cookies.set("JSESSIONID", res.data.JSESSSIONID);
+    //
+    //     }
+    //   })
+    //   .catch(() => {
+    //     this.loading = false;
+    //   });
   },
 };
 </script>