From 7291768b035b155f0e68043dd9d8a1781ea735b7 Mon Sep 17 00:00:00 2001 From: wangqiao Date: Mon, 25 Aug 2025 22:51:06 +0800 Subject: [PATCH] Update token handling and user state management --- components/kl-login/index.vue | 7 +++++++ composables/states.ts | 21 ++++++++++++++++++++- composables/useFetchRequest.ts | 9 ++++++++- pages/sign-content/index.vue | 5 ++++- store/user.ts | 2 ++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/components/kl-login/index.vue b/components/kl-login/index.vue index 7515591..abaa3e4 100644 --- a/components/kl-login/index.vue +++ b/components/kl-login/index.vue @@ -90,7 +90,10 @@ import { handleLoginQQ, handleLoginWechat } from '~/utils/login' import useUserStore from '~/store/user' const app = useNuxtApp() + const token = useToken(); + const userStore = useUserStore() + const tokenCookie = useCookie('token'); const props = defineProps({ visible: { @@ -210,6 +213,10 @@ const res = await login(loginForm) const { code, data, msg } = res if (code !== 0) return ElMessage.error(msg) + // 设置cookie + tokenCookie.value = data.accessToken; + // 更新state + token.value = data.accessToken; REFRESHTOKEN.setToken(data.accessToken, data.refreshToken) REFRESHTOKEN.setUserId(data.userId.toString()) REFRESHTOKEN.setUserName(loginForm.mobile) diff --git a/composables/states.ts b/composables/states.ts index 81e7c70..de30729 100644 --- a/composables/states.ts +++ b/composables/states.ts @@ -2,7 +2,26 @@ export const useToken = () => useState('token', () => { const token = useCookie('token'); - return token.value ? 'Bearer ' + token.value : ''; + return token.value ? token.value : ''; + }); + + type UserInfo = { + nickname: string, + avatar: string, + mobile: string, + id: number | undefined, + vipLevel: number | undefined, + sex: number | undefined, + } + export const useUserInfo = () => useState('userInfo', () => { + return { + nickname: '', + avatar: '', + mobile: '', + id: undefined, + vipLevel: undefined, + sex: undefined, + } }); /** 热门数据 */ diff --git a/composables/useFetchRequest.ts b/composables/useFetchRequest.ts index 300c5ad..852ca17 100644 --- a/composables/useFetchRequest.ts +++ b/composables/useFetchRequest.ts @@ -6,7 +6,8 @@ const useServerRequest = async ( url: string, opts?: UseFetchOptions ) => { - const token = useCookie("token"); + const token = useToken(); + const user = useUserInfo(); const runtimeConfig = useRuntimeConfig(); const defaultOptions: UseFetchOptions = { @@ -14,9 +15,15 @@ const useServerRequest = async ( onRequest({ options }) { options.headers = options.headers || "application/json"; if (token.value) { + console.log('user----', user.value); + + console.log('token----', "Bearer " + token.value) // @ts-ignore options.headers["authorization"] = "Bearer " + token.value; } + + console.log(url +'-----' +'options----', options); + }, onResponse({ response }) { if (+response.status === 200 && +response._data.code !== 0) { diff --git a/pages/sign-content/index.vue b/pages/sign-content/index.vue index da99ade..92e8cac 100644 --- a/pages/sign-content/index.vue +++ b/pages/sign-content/index.vue @@ -72,11 +72,12 @@ import useUserStore from '~/store/user' import dayjs from 'dayjs' const userStore = useUserStore() + const user = useUserInfo(); const query = reactive({ pageNo: 1, pageSize: 10, - userId: userStore.userId, + userId: user.value.id, title: '', }) @@ -118,6 +119,8 @@ const {data: result, refresh: getUserPointPageList } = await useAsyncData('getUserPointPage', async () => { const res = await getUserPointPage(query) return res.data + }, { + immediate: true, // 立即请求 }) // const getUserPointPageList = async () => { diff --git a/store/user.ts b/store/user.ts index 5d68e8e..f005468 100644 --- a/store/user.ts +++ b/store/user.ts @@ -38,10 +38,12 @@ export default defineStore("useUserStore", { } }, async getUserInfo() { + const user = useUserInfo(); const res = await getUserInfo(); if (res.code === 0) { this.userInfoRes = res.data; refreshToken.setUserInfo(res.data); + user.value = res.data; // 建立连接mqtt this.connectMqtt(); }