优化前端认证与类型管理

This commit is contained in:
yml
2026-05-25 01:59:59 +08:00
parent eafa6f96b2
commit 2cfd3d9422
28 changed files with 435 additions and 280 deletions
+14 -8
View File
@@ -1,11 +1,12 @@
import { defineStore } from 'pinia'
import { fetchAdminMe, loginAdmin, type AdminUser } from '@/api/adminAuth'
import { clearAuthStorage, getAccessToken, getRefreshToken, setAuthTokens } from '@/utils/authStorage'
export const useAdminSessionStore = defineStore('adminSession', {
state: () => ({
token: localStorage.getItem('admin_access_token') || '',
refreshToken: localStorage.getItem('admin_refresh_token') || '',
token: getAccessToken('admin'),
refreshToken: getRefreshToken('admin'),
adminId: Number(localStorage.getItem('admin_id') || 0),
username: localStorage.getItem('admin_username') || '',
nickname: '',
@@ -27,16 +28,21 @@ export const useAdminSessionStore = defineStore('adminSession', {
this.adminId = 0
this.username = ''
this.nickname = ''
localStorage.removeItem('admin_access_token')
localStorage.removeItem('admin_refresh_token')
localStorage.removeItem('admin_id')
localStorage.removeItem('admin_username')
clearAuthStorage('admin')
},
syncFromStorage() {
this.token = getAccessToken('admin')
this.refreshToken = getRefreshToken('admin')
this.adminId = Number(localStorage.getItem('admin_id') || 0)
this.username = localStorage.getItem('admin_username') || ''
},
applySession(admin: AdminUser, accessToken: string, refreshToken: string) {
this.token = accessToken
this.refreshToken = refreshToken
localStorage.setItem('admin_access_token', accessToken)
localStorage.setItem('admin_refresh_token', refreshToken)
setAuthTokens('admin', {
access_token: accessToken,
refresh_token: refreshToken,
})
this.applyAdmin(admin)
},
applyAdmin(admin: AdminUser) {