From 6e1893acd28cdde918da3f5430f616b5eb7008eb Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Sun, 7 Sep 2025 17:09:33 +0800 Subject: [PATCH] =?UTF-8?q?perf(=E7=99=BB=E5=BD=95):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3=E8=B7=AF=E5=BE=84=E5=B9=B6?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/about/about.vue | 23 ++++++++++++++++++++--- src/service/user.ts | 4 ++-- src/service/user.vuequery.ts | 2 +- src/store/token.ts | 20 +++++++++++++------- 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/pages/about/about.vue b/src/pages/about/about.vue index f40d077..2c8f68d 100644 --- a/src/pages/about/about.vue +++ b/src/pages/about/about.vue @@ -30,6 +30,15 @@ function gotoLogin() { url: `${LOGIN_PAGE}?redirect=${encodeURIComponent('/pages/about/about?a=1&b=2')}`, }) } +function logout() { + // 清空用户信息 + tokenStore.logout() + // 执行退出登录逻辑 + uni.showToast({ + title: '退出登录成功', + icon: 'success', + }) +} function gotoTabbar() { uni.switchTab({ @@ -93,9 +102,17 @@ onShow(() => { - + + 当前是否登录:{{ tokenStore.hasLogin }} + + + + + diff --git a/src/service/user.ts b/src/service/user.ts index 5653783..f3b2b78 100644 --- a/src/service/user.ts +++ b/src/service/user.ts @@ -119,7 +119,7 @@ export async function userCreateWithListUsingPost({ }); } -/** Logs user into the system GET /user/login */ +/** Logs user into the system GET /auth/login */ export async function userLoginUsingGet({ params, options, @@ -128,7 +128,7 @@ export async function userLoginUsingGet({ params: API.userLoginUsingGetParams; options?: CustomRequestOptions; }) { - return request('/user/login', { + return request('/auth/login', { method: 'GET', params: { ...params, diff --git a/src/service/user.vuequery.ts b/src/service/user.vuequery.ts index 658060a..6e5851f 100644 --- a/src/service/user.vuequery.ts +++ b/src/service/user.vuequery.ts @@ -122,7 +122,7 @@ export function useUserCreateWithListUsingPostMutation(options?: { return response; } -/** Logs user into the system GET /user/login */ +/** Logs user into the system GET /auth/login */ export function userLoginUsingGetQueryOptions(options: { // 叠加生成的Param类型 (非body参数openapi默认没有生成对象) params: API.userLoginUsingGetParams; diff --git a/src/store/token.ts b/src/store/token.ts index 73f0c5f..1022d05 100644 --- a/src/store/token.ts +++ b/src/store/token.ts @@ -3,7 +3,6 @@ import { defineStore } from 'pinia' import { computed, ref } from 'vue' // 修复:导入 computed import { login as _login, - logout as _logout, refreshToken as _refreshToken, wxLogin as _wxLogin, getWxCode, @@ -155,18 +154,21 @@ export const useTokenStore = defineStore( */ const logout = async () => { try { - await _logout() - // 清除存储的过期时间 - uni.removeStorageSync('accessTokenExpireTime') - uni.removeStorageSync('refreshTokenExpireTime') + // TODO 实现自己的退出登录逻辑 + // await _logout() } catch (error) { console.error('退出登录失败:', error) } finally { // 无论成功失败,都需要清除本地token信息 - const userStore = useUserStore() - await userStore.removeUserInfo() + // 清除存储的过期时间 + uni.removeStorageSync('accessTokenExpireTime') + uni.removeStorageSync('refreshTokenExpireTime') + console.log('退出登录-清除用户信息') + tokenInfo.value = { ...tokenInfoState } + uni.removeStorageSync('user') + uni.removeStorageSync('token') } } @@ -221,6 +223,9 @@ export const useTokenStore = defineStore( * 检查是否有登录信息(不考虑token是否过期) */ const hasLoginInfo = computed(() => { + if (!tokenInfo.value) { + return false + } if (isDoubleTokenMode) { return isDoubleTokenRes(tokenInfo.value) && !!tokenInfo.value.accessToken } @@ -233,6 +238,7 @@ export const useTokenStore = defineStore( * 检查是否已登录且token有效 */ const hasValidLogin = computed(() => { + console.log('hasValidLogin', hasLoginInfo.value, !isTokenExpired.value) return hasLoginInfo.value && !isTokenExpired.value })