From 210a77aca6f01b69c36df232ed25d4fbdacf1125 Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Thu, 21 Aug 2025 18:46:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor(user):=20=E5=90=88=E5=B9=B6=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=A1=E6=81=AF=E5=92=8Ctoken=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构用户信息存储结构,将IUserTokenVo合并到IUserInfoVo中 移除冗余的userToken状态管理,统一使用userInfo存储token信息 优化路由拦截器和登录页面处理逻辑,增加query参数解析功能 修改默认登录策略为需要登录 清理me页面中冗余的登录状态检查逻辑 --- src/api/types/login.ts | 6 ------ src/http/http.ts | 2 +- src/http/interceptor.ts | 2 +- src/login/config.ts | 2 +- src/pages/login/login.vue | 13 ++++++++---- src/pages/me/me.vue | 11 +--------- src/router/interceptor.ts | 31 +++++++++++++++++++---------- src/router/queryString.ts | 42 +++++++++++++++++++++++++++++++++++++++ src/store/user.ts | 37 ++++++++++------------------------ 9 files changed, 85 insertions(+), 61 deletions(-) create mode 100644 src/router/queryString.ts diff --git a/src/api/types/login.ts b/src/api/types/login.ts index 2a926b9..e732599 100644 --- a/src/api/types/login.ts +++ b/src/api/types/login.ts @@ -5,12 +5,6 @@ export interface IUserInfoVo { id: number username: string avatar: string -} - -/** - * 用户token - */ -export interface IUserTokenVo { token: string refreshToken?: string refreshExpire?: number diff --git a/src/http/http.ts b/src/http/http.ts index bb7555f..5efeea0 100644 --- a/src/http/http.ts +++ b/src/http/http.ts @@ -35,7 +35,7 @@ export function http(options: CustomRequestOptions) { return reject(res) } /* -------- 无感刷新 token ----------- */ - const { refreshToken } = store.userToken || {} + const { refreshToken } = store.userInfo || {} // token 失效的,且有刷新 token 的,才放到请求队列里 if ((res.statusCode === 401 || resData.code === 401) && refreshToken) { taskQueue.push(() => { diff --git a/src/http/interceptor.ts b/src/http/interceptor.ts index 7fb0d63..1c758a3 100644 --- a/src/http/interceptor.ts +++ b/src/http/interceptor.ts @@ -48,7 +48,7 @@ const httpInterceptor = { } // 3. 添加 token 请求头标识 const userStore = useUserStore() - const { token } = userStore.userToken as unknown as IUserToken + const { token } = userStore.userInfo as unknown as IUserToken if (token) { options.header.Authorization = `Bearer ${token}` } diff --git a/src/login/config.ts b/src/login/config.ts index f79870b..8a925ff 100644 --- a/src/login/config.ts +++ b/src/login/config.ts @@ -3,7 +3,7 @@ export const LOGIN_STRATEGY_MAP = { DEFAULT_NEED_LOGIN: 1, // 白名单策略,默认不可以进入APP,需要强制登录 } // 登录策略,默认使用`无需登录策略`,即默认不需要登录就可以访问 -export const LOGIN_STRATEGY = LOGIN_STRATEGY_MAP.DEFAULT_NO_NEED_LOGIN +export const LOGIN_STRATEGY = LOGIN_STRATEGY_MAP.DEFAULT_NEED_LOGIN export const isNeedLogin = LOGIN_STRATEGY === LOGIN_STRATEGY_MAP.DEFAULT_NEED_LOGIN export const LOGIN_PAGE = '/pages/login/login' diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index 0601da1..b09f8b9 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -8,6 +8,7 @@