优化
This commit is contained in:
@@ -39,7 +39,6 @@ function sessionFromToken(token: string) {
|
||||
account: claims.username || '',
|
||||
roles: claims.roles ?? [],
|
||||
} satisfies CurrentUser,
|
||||
permissions: claims.permissions ?? [],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +57,7 @@ export const useAuthStore = defineStore('admin-auth', () => {
|
||||
const cachedPermissions = JSON.parse(localStorage.getItem(PERMISSION_CODES_KEY) || '[]') as unknown
|
||||
if (!Array.isArray(cachedPermissions)) throw new Error('权限缓存格式无效')
|
||||
user.value = session.user
|
||||
permissions.value = session.permissions.filter((code) => cachedPermissions.includes(code))
|
||||
permissions.value = cachedPermissions.filter((code): code is string => typeof code === 'string')
|
||||
isServerSession.value = true
|
||||
} catch (error) {
|
||||
token.value = ''
|
||||
@@ -98,8 +97,7 @@ export const useAuthStore = defineStore('admin-auth', () => {
|
||||
const activePermissionCodes = await listCurrentPlatformPermissionCodes()
|
||||
ensureCurrentGeneration(expectedGeneration)
|
||||
permissionResources.value = []
|
||||
const activePermissionCodeSet = new Set(activePermissionCodes)
|
||||
applyPermissionCodes(session.permissions.filter((code) => activePermissionCodeSet.has(code)))
|
||||
applyPermissionCodes(activePermissionCodes)
|
||||
} catch (error) {
|
||||
ensureCurrentGeneration(expectedGeneration)
|
||||
throw error
|
||||
@@ -138,7 +136,9 @@ export const useAuthStore = defineStore('admin-auth', () => {
|
||||
token.value = storedToken
|
||||
refreshToken.value = storedRefreshToken
|
||||
user.value = session.user
|
||||
permissions.value = session.permissions.filter((code) => Array.isArray(cachedPermissions) && cachedPermissions.includes(code))
|
||||
permissions.value = Array.isArray(cachedPermissions)
|
||||
? cachedPermissions.filter((code): code is string => typeof code === 'string')
|
||||
: []
|
||||
permissionResources.value = []
|
||||
isServerSession.value = true
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user