diff --git a/src/components/user/EditeAvatar.vue b/src/components/user/EditeAvatar.vue index 48626ed..60c69f4 100644 --- a/src/components/user/EditeAvatar.vue +++ b/src/components/user/EditeAvatar.vue @@ -40,7 +40,7 @@ const onUpload = async () => { const res = await userUploadAvatarService({ file: selectedFile }) const { originUrl, thumbUrl } = res.data.data await userModifySelfService({ avatar: originUrl, avatarThumb: thumbUrl }) - userData.getUserForce() + userData.getUser() ElMessage.success('头像上传成功') emit('update:modelValue', false) selectedFile = null diff --git a/src/const/userConst.js b/src/const/userConst.js index 7a0b3d8..daac06c 100644 --- a/src/const/userConst.js +++ b/src/const/userConst.js @@ -2,4 +2,3 @@ export const CLIENT_TYPE = 2 export const CLIENT_NAME = 'web' export const CLIENT_VERSION = '0.0.1' export const CLIENT_ID = 'XXAA' -export const USER_DATA_EXPIRE = 3600 diff --git a/src/router/index.js b/src/router/index.js index 12d6a9e..101a0a5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -52,15 +52,15 @@ const router = createRouter({ }) router.beforeEach((to, from, next) => { - // 如果没有token,且访问的是非登录页,拦截到登录 + // 如果没有登录,且访问的是非登录页,拦截到登录 const userData = userStore() - if (!userData.at.token && to.path !== '/login') { + if (!userData.isLogin() && to.path !== '/login') { next('/login') return } - // 如果有token,且访问的是登录页,拦截到首页 - if (userData.at.token && to.path === '/login') { + // 如果登录,且访问的是登录页,拦截到首页 + if (userData.isLogin() && to.path === '/login') { next('/') return } diff --git a/src/stores/user.js b/src/stores/user.js index 0ebfe77..ed98b97 100644 --- a/src/stores/user.js +++ b/src/stores/user.js @@ -1,7 +1,6 @@ import { defineStore } from 'pinia' import { ref } from 'vue' import { userInfoService } from '@/api/user' -import { USER_DATA_EXPIRE } from '@/const/userConst' // 用户模块 export const userStore = defineStore( @@ -49,24 +48,21 @@ export const userStore = defineStore( } const user = ref({}) - const loginTime = ref(0) + const getUser = async () => { - const now = new Date().getTime() - if (loginTime.value === 0 || now - loginTime.value > USER_DATA_EXPIRE * 1000) { - const res = await userInfoService() - user.value = res.data.data - loginTime.value = now - } - } - const getUserForce = async () => { const res = await userInfoService() user.value = res.data.data - loginTime.value = new Date().getTime() } + const setUser = (obj) => { user.value = obj } + const isLogin = () => { + const now = new Date().getTime() + return at.value.expiretime && now < at.value.expiretime + } + return { at, rt, @@ -76,9 +72,8 @@ export const userStore = defineStore( clearRt, user, getUser, - getUserForce, setUser, - loginTime + isLogin } }, { diff --git a/src/views/layout/LayoutContainer.vue b/src/views/layout/LayoutContainer.vue index 921a389..2751eb3 100644 --- a/src/views/layout/LayoutContainer.vue +++ b/src/views/layout/LayoutContainer.vue @@ -34,7 +34,7 @@ const clickListener = (e) => { } const openMyCardDialog = () => { - userData.getUserForce() //打开头像信息之前,强制刷新一把数据 + userData.getUser() myCardDialog.value.open() } diff --git a/src/views/setting/SettingPersonal.vue b/src/views/setting/SettingPersonal.vue index 54f15b2..43b0142 100644 --- a/src/views/setting/SettingPersonal.vue +++ b/src/views/setting/SettingPersonal.vue @@ -28,7 +28,7 @@ const onSave = () => { const res = userModifySelfService(formModel.value) res.then(() => { ElMessage.success('信息保存成功') - userData.getUserForce() + userData.getUser() }) res.finally(() => { isLoading.value = false