From e64b12097a83ae78f801ccd896c7c9a6e28f9eb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Mon, 15 Jan 2024 00:25:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Bbs.Vue3/.env.development | 2 +- Yi.Bbs.Vue3/src/App.vue | 23 ++++++++++++++++++++--- Yi.Bbs.Vue3/src/hooks/useAuths.js | 27 +++++++++++++++++++++++++-- Yi.Bbs.Vue3/src/layout/AppHeader.vue | 4 ++-- Yi.Bbs.Vue3/src/utils/signalR.js | 3 +-- Yi.Bbs.Vue3/src/views/home/Index.vue | 16 +++------------- 6 files changed, 52 insertions(+), 23 deletions(-) diff --git a/Yi.Bbs.Vue3/.env.development b/Yi.Bbs.Vue3/.env.development index fa1e6cbf..c08da086 100644 --- a/Yi.Bbs.Vue3/.env.development +++ b/Yi.Bbs.Vue3/.env.development @@ -7,4 +7,4 @@ VITE_APP_URL="http://localhost:19001/api/app" # ws/开发环境 VITE_APP_BASE_WS = '/dev-ws' -VITE_APP_BASE_URL_WS="http://localhost:19001/api/app" \ No newline at end of file +VITE_APP_BASE_URL_WS="http://localhost:19001/hub" \ No newline at end of file diff --git a/Yi.Bbs.Vue3/src/App.vue b/Yi.Bbs.Vue3/src/App.vue index d315e780..8b87432c 100644 --- a/Yi.Bbs.Vue3/src/App.vue +++ b/Yi.Bbs.Vue3/src/App.vue @@ -6,13 +6,14 @@ diff --git a/Yi.Bbs.Vue3/src/hooks/useAuths.js b/Yi.Bbs.Vue3/src/hooks/useAuths.js index ae4d4c3f..b871998b 100644 --- a/Yi.Bbs.Vue3/src/hooks/useAuths.js +++ b/Yi.Bbs.Vue3/src/hooks/useAuths.js @@ -8,11 +8,14 @@ import { userLogout, userRegister, } from "@/apis/auth"; +import { ref, watch } from "vue"; +import signalR from "@/utils/signalR"; const TokenKey = "AccessToken"; export const AUTH_MENUS = "AUTH_MENUS"; export const AUTH_USER = "AUTH_USER"; + export default function useAuths(opt) { const defaultOpt = { loginUrl: "/login", // 登录页跳转url 默认: /login @@ -26,9 +29,22 @@ export default function useAuths(opt) { ...opt, }; +const tokenValue=ref(''); + +watch( + () => tokenValue.value, + (val,oldValue) => { + console.log("token发生改变"+val+"------"+oldValue) + signalR.init(`main`); + }, + { deep:true } +); + + // 获取token const getToken = () => { - return Local.get(TokenKey); + var token= Local.get(TokenKey); + return token; }; // 存储token到cookies @@ -37,6 +53,7 @@ export default function useAuths(opt) { return false; } Local.set(TokenKey, token); + return true; }; @@ -50,7 +67,7 @@ export default function useAuths(opt) { const logoutFun = async () => { let flag = true; try { - await userLogout().then((res) => { + await userLogout().then((res) => { ElMessage({ message: "退出成功", type: "info", @@ -75,6 +92,7 @@ export default function useAuths(opt) { return false; }); } + if (flag) { clearStorage(); } @@ -82,9 +100,12 @@ export default function useAuths(opt) { // 清空本地存储的信息 const clearStorage = () => { + console.log("token发生改变22清除清除") + tokenValue.value=''; Session.clear(); Local.clear(); removeToken(); + }; // 用户名密码登录 @@ -122,6 +143,7 @@ export default function useAuths(opt) { const { token } = res.data; setToken(token); + tokenValue.value=token; try { // 存储用户信息 await useUserStore().getInfo(); // 用户信息 @@ -165,5 +187,6 @@ export default function useAuths(opt) { clearStorage, registerFun, loginSuccess, + tokenValue }; } diff --git a/Yi.Bbs.Vue3/src/layout/AppHeader.vue b/Yi.Bbs.Vue3/src/layout/AppHeader.vue index 7922d096..59fa9665 100644 --- a/Yi.Bbs.Vue3/src/layout/AppHeader.vue +++ b/Yi.Bbs.Vue3/src/layout/AppHeader.vue @@ -84,7 +84,7 @@ import useUserStore from "@/stores/user.js"; import useConfigStore from "@/stores/config"; import useAuths from "@/hooks/useAuths"; import { Session } from "@/utils/storage"; -// import signalR from "@/utils/signalR"; +import signalR from "@/utils/signalR"; const { getToken, clearStorage } = useAuths(); const configStore = useConfigStore(); @@ -104,7 +104,7 @@ const logout = async () => { }).then(async () => { //异步 await userStore.logOut(); - // await signalR.close(); + await signalR.close(); //删除成功后,跳转到主页 router.push("/login"); ElMessage({ diff --git a/Yi.Bbs.Vue3/src/utils/signalR.js b/Yi.Bbs.Vue3/src/utils/signalR.js index 006b308c..76d74b5c 100644 --- a/Yi.Bbs.Vue3/src/utils/signalR.js +++ b/Yi.Bbs.Vue3/src/utils/signalR.js @@ -36,8 +36,6 @@ export default { connection.state === signalR.HubConnectionState.Disconnected ); // 建议用户重新刷新浏览器 - await this.close(); - await this.start(); }); connection.onreconnected(() => { @@ -55,6 +53,7 @@ export default { try { var that = this; await this.SR.stop(); + this.SR={}; } catch {} }, diff --git a/Yi.Bbs.Vue3/src/views/home/Index.vue b/Yi.Bbs.Vue3/src/views/home/Index.vue index 2f99de55..7a0e4457 100644 --- a/Yi.Bbs.Vue3/src/views/home/Index.vue +++ b/Yi.Bbs.Vue3/src/views/home/Index.vue @@ -213,13 +213,11 @@ import RecommendFriend from "./components/RecommendFriend/index.vue"; import ThemeData from "./components/RecommendTheme/index.vue"; import Skeleton from "@/components/Skeleton/index.vue"; import useSocketStore from "@/stores/socket"; -import signalR from "@/utils/signalR"; -import useAuths from "@/hooks/useAuths"; + const router = useRouter(); -const { getToken } = useAuths(); -const token = getToken(); + const plateList = ref([]); const discussList = ref([]); @@ -310,15 +308,7 @@ watch( { deep: true } ); -watch( - () => token, - async (val) => { - if (val) { - await signalR.init(`main`); - } - }, - { immediate: true } -); +