优化backend端相关功能
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { getCurrentUser } from '@/api/login'
|
||||
|
||||
// 用户信息类型
|
||||
const defaultUser = {
|
||||
@@ -8,6 +9,7 @@ const defaultUser = {
|
||||
name: '',
|
||||
group_id: '',
|
||||
type: 'backend',
|
||||
tenant_name: '',
|
||||
avatar: ''
|
||||
}
|
||||
|
||||
@@ -29,8 +31,27 @@ export const useAuthStore = defineStore('auth', () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 从后端拉取最新用户信息(含租户名称),用于已有会话补充 tenant_name
|
||||
async function fetchCurrentUser() {
|
||||
if (!token.value) return
|
||||
try {
|
||||
const res = await getCurrentUser()
|
||||
if (res && res.code === 200 && res.data) {
|
||||
Object.assign(user, res.data)
|
||||
localStorage.setItem('userInfo', JSON.stringify({ ...user }))
|
||||
}
|
||||
} catch (e) {
|
||||
// 静默失败,不影响登录态
|
||||
console.error('Failed to fetch current user info:', e)
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化时加载用户信息
|
||||
loadUserFromCache()
|
||||
// 若已登录但缺少租户名称,异步从后端补齐
|
||||
if (token.value) {
|
||||
fetchCurrentUser()
|
||||
}
|
||||
|
||||
// 保存登录信息(token 和用户信息)
|
||||
function setLoginInfo(loginData) {
|
||||
@@ -42,6 +63,7 @@ export const useAuthStore = defineStore('auth', () => {
|
||||
name: userInfo.name || '',
|
||||
group_id: userInfo.group_id || '',
|
||||
type: 'backend',
|
||||
tenant_name: userInfo.tenant_name || '',
|
||||
tid: userInfo.tid || '',
|
||||
avatar: userInfo.avatar || ''
|
||||
}
|
||||
@@ -101,7 +123,8 @@ export const useAuthStore = defineStore('auth', () => {
|
||||
setToken,
|
||||
clearToken,
|
||||
checkAuth,
|
||||
updateUserInfo
|
||||
updateUserInfo,
|
||||
fetchCurrentUser
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user