刘洋 1 жил өмнө
parent
commit
693dcada5a

+ 11 - 11
src/App.vue

@@ -8,26 +8,26 @@
 <script setup name="App">
 import { getUrlParam } from "./utils";
 import LibForWeixin from "./utils/LibForWeixin";
-import { useAppStore } from "./store";
+import { useAppStore, useUserStore } from "./store";
 import { useRouter } from "vue-router";
 import { ref } from "vue";
-
 const router = useRouter();
 const appStore = useAppStore();
+const userStore = useUserStore();
 const code = getUrlParam("code");
 const showApp = ref(false);
 let pattern =
   /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
-if (!code) {
-  if (!pattern.test(location.hostname)) {
-    //如果是41环境,ip访问项目的话,则不考虑微信相关功能
-    LibForWeixin.auth();
-  } else {
-    showApp.value = true;
-  }
-} else {
-  // userStore.requestOpenId(code);
+
+if (userStore.openId || code) {
   showApp.value = true;
   router.push({ name: "WxLogin", query: { code } });
+} else {
+  if (pattern.test(location.hostname)) {
+    //如果是ip访问
+    showApp.value = true;
+  } else {
+    LibForWeixin.auth();
+  }
 }
 </script>

+ 1 - 1
src/api/apiConfig/index.js

@@ -14,7 +14,7 @@ const axiosInstance = axios.create({
 });
 
 function setAuth(config) {
-  let userStorage = localStorage.getItem("user");
+  let userStorage = sessionStorage.getItem("user");
   if (userStorage && !config.noAuth) {
     let loginInfo = JSON.parse(userStorage).loginInfo;
     const timestamp = Date.now();

+ 10 - 11
src/pages/wxLogin.vue

@@ -15,19 +15,18 @@ async function _wxLogin() {
     loadingType: "spinner",
     duration: 0,
   });
-  const openId = await fetchOpenId(code).catch(() => {});
+  let openId = userStore.openId;
+  if (!openId && code) {
+    openId = await fetchOpenId(code).catch(() => {});
+  }
   if (openId) {
     userStore.setOpenId(openId);
-    try {
-      let res = await wxLogin(openId);
-      closeToast();
-      if (res?.id) {
-        userStore.setLoginInfo(res);
-        router.replace("/index");
-      } else {
-        router.replace("/login");
-      }
-    } catch {
+    let res = await wxLogin(openId).catch(() => {});
+    closeToast();
+    if (res?.id) {
+      userStore.setLoginInfo(res);
+      router.replace("/index");
+    } else {
       router.replace("/login");
     }
   } else {

+ 1 - 0
src/router/index.js

@@ -19,6 +19,7 @@ const router = createRouter({
 });
 const whiteList = ["Login", "WxLogin"];
 router.beforeEach(async (to, from, next) => {
+  console.log("to:", to);
   const appStore = useAppStore();
   if (!appStore.globalConfig && to.name !== "WxLogin") {
     let config = await appStore.getGlobalConfig();

+ 5 - 3
src/store/modules/user.js

@@ -4,7 +4,7 @@ import router from "@/router/index";
 
 const useUserStore = defineStore("user", {
   persist: {
-    storage: localStorage,
+    storage: sessionStorage,
     paths: ["loginInfo", "stuInfo", "openId"],
   },
   state: () => ({ loginInfo: null, stuInfo: null, openId: "" }),
@@ -25,7 +25,7 @@ const useUserStore = defineStore("user", {
     },
     bindWx() {
       if (this.openId) {
-        wxBind();
+        wxBind(this.openId);
       }
     },
     async logout(bool) {
@@ -40,7 +40,9 @@ const useUserStore = defineStore("user", {
       }
     },
     resetUser() {
-      this.$reset();
+      // this.$reset();
+      this.loginInfo = null;
+      this.stuInfo = null;
     },
   },
 });