GouGengquan 8 місяців тому
батько
коміт
9ce874cf30

Різницю між файлами не показано, бо вона завелика
+ 4203 - 7
package-lock.json


+ 6 - 0
src/api/user.js

@@ -5,4 +5,10 @@ export function loginByOAInfo(params) {
         url: '/auth/loginByOAInfo?oaToken=' + params,
         method: 'post'
     })
+}
+export function logout(){
+    return request({
+        url: '/auth/logout',
+        method: 'post'
+    })
 }

Різницю між файлами не показано, бо вона завелика
+ 225 - 185
src/layout/components/Navbar.vue


+ 3 - 0
src/stores/useUserStore.js

@@ -8,6 +8,9 @@ export const useUserStore = defineStore('user', {
         setUserInfo(data) {
             this.userInfo = data
         },
+        removeUserInfo(){
+            this.userInfo = null;
+        }
     },
     persist: {
         enabled: true,   //开启持久化

+ 1 - 2
src/utils/request.js

@@ -51,9 +51,8 @@ service.interceptors.response.use(
           center: true,
         }
         ).then(() => { // 确认重新登录
-          // userStore.removeToken();
           removeToken();
-          window.location.href = 'http://127.0.0.1:9518/';
+          window.location.href = import.meta.env.VITE_OA_URL;
         })
       }
       return Promise.reject(new Error(res.message || 'Error'))

+ 2 - 2
src/views/home/index.vue

@@ -194,8 +194,8 @@ export default {
     ...mapStores(useUserStore),
   },
   created() {
-    // 如果路由上带了token,且cookie中的token为空,说明是从oa刚跳转过来,需要进行登录
-    if (this.$route.query.token && !getToken()) {
+    // 如果路由上带了token,说明是从oa刚跳转过来,需要进行登录
+    if (this.$route.query.token) {
       loginByOAInfo(this.$route.query.token).then(res => {
         setToken(res.data.tokenValue);
         this.userStore.setUserInfo(res.data);