bill 1 年之前
父节点
当前提交
75f47f320c
共有 2 个文件被更改,包括 20 次插入3 次删除
  1. 17 2
      src/router.ts
  2. 3 1
      src/store/user.ts

+ 17 - 2
src/router.ts

@@ -1,6 +1,6 @@
 import { RouteRecordRaw, createRouter, createWebHashHistory } from "vue-router";
-import { UserStatus, userStatus } from "./store/user";
-import { watchEffect } from "vue";
+import { UserStatus, logintAuth, userStatus } from "./store/user";
+import { watch, watchEffect } from "vue";
 
 const history = createWebHashHistory();
 const routes: RouteRecordRaw[] = [
@@ -126,6 +126,21 @@ watchEffect(() => {
   }
 });
 
+// 非登录页面校验是否等里
+watch(
+  () => [router.currentRoute.value.name?.toString(), userStatus.value] as const,
+  ([routeName, userStatus]) => {
+    if (
+      routeName &&
+      !routeName.includes("query") &&
+      userStatus === UserStatus.UNKNOWN
+    ) {
+      logintAuth();
+    }
+  },
+  { immediate: true }
+);
+
 router.beforeEach((to, _, next) => {
   if (!to.name || to.name === "main-layout") {
     if (userStatus.value !== UserStatus.NOT_LOGIN) {

+ 3 - 1
src/store/user.ts

@@ -38,10 +38,12 @@ errorHook.push((code) => {
     logout();
   }
 });
+
+export const logintAuth = getUserInfo;
+
 const token = localStorage.getItem("token");
 if (token) {
   gHeaders.token = token;
-  getUserInfo();
 } else {
   userStatus.value = UserStatus.NOT_LOGIN;
 }