mirror of
https://gitee.com/lijingbo-2021/open-anylink-web.git
synced 2025-12-30 02:52:26 +00:00
解决假登录问题
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ const clickListener = (e) => {
|
||||
}
|
||||
|
||||
const openMyCardDialog = () => {
|
||||
userData.getUserForce() //打开头像信息之前,强制刷新一把数据
|
||||
userData.getUser()
|
||||
myCardDialog.value.open()
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ const onSave = () => {
|
||||
const res = userModifySelfService(formModel.value)
|
||||
res.then(() => {
|
||||
ElMessage.success('信息保存成功')
|
||||
userData.getUserForce()
|
||||
userData.getUser()
|
||||
})
|
||||
res.finally(() => {
|
||||
isLoading.value = false
|
||||
|
||||
Reference in New Issue
Block a user