mirror of
https://github.com/fawney19/Aether.git
synced 2026-01-03 00:02:28 +08:00
refactor(frontend): 优化工具和 API 模块
- 改进 sanitize 工具函数 - 优化 mocks 数据和处理器 - 优化 auth API 模块
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import apiClient from './client'
|
import apiClient from './client'
|
||||||
|
import { log } from '@/utils/logger'
|
||||||
|
|
||||||
export interface LoginRequest {
|
export interface LoginRequest {
|
||||||
email: string
|
email: string
|
||||||
@@ -65,7 +66,7 @@ export const authApi = {
|
|||||||
await apiClient.post('/api/auth/logout', {})
|
await apiClient.post('/api/auth/logout', {})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// 即使后端登出失败,也要清除本地认证信息
|
// 即使后端登出失败,也要清除本地认证信息
|
||||||
console.warn('后端登出失败,仅清除本地认证信息:', error)
|
log.warn('后端登出失败,仅清除本地认证信息:', error)
|
||||||
} finally {
|
} finally {
|
||||||
// 清除本地认证信息
|
// 清除本地认证信息
|
||||||
apiClient.clearAuth()
|
apiClient.clearAuth()
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import type { User, LoginResponse } from '@/api/auth'
|
import type { User, LoginResponse } from '@/api/auth'
|
||||||
import type { DashboardStatsResponse, RecentRequest, ProviderStatus, DailyStatsResponse } from '@/api/dashboard'
|
import type { DashboardStatsResponse, RecentRequest, ProviderStatus, DailyStatsResponse } from '@/api/dashboard'
|
||||||
import type { User as AdminUser, ApiKey } from '@/api/users'
|
import type { User as AdminUser, ApiKey } from '@/api/users'
|
||||||
import type { AdminApiKey, AdminApiKeysResponse } from '@/api/admin'
|
import type { AdminApiKeysResponse } from '@/api/admin'
|
||||||
import type { Profile, UsageResponse } from '@/api/me'
|
import type { Profile, UsageResponse } from '@/api/me'
|
||||||
import type { ProviderWithEndpointsSummary, GlobalModelResponse } from '@/api/endpoints/types'
|
import type { ProviderWithEndpointsSummary, GlobalModelResponse } from '@/api/endpoints/types'
|
||||||
|
|
||||||
|
|||||||
@@ -1571,7 +1571,7 @@ registerDynamicRoute('GET', '/api/admin/providers/:providerId/available-source-m
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 分配 GlobalModels 到 Provider
|
// 分配 GlobalModels 到 Provider
|
||||||
registerDynamicRoute('POST', '/api/admin/providers/:providerId/assign-global-models', async (config, params) => {
|
registerDynamicRoute('POST', '/api/admin/providers/:providerId/assign-global-models', async (config, _params) => {
|
||||||
await delay()
|
await delay()
|
||||||
requireAdmin()
|
requireAdmin()
|
||||||
const body = JSON.parse(config.data || '{}')
|
const body = JSON.parse(config.data || '{}')
|
||||||
@@ -1620,7 +1620,7 @@ registerDynamicRoute('DELETE', '/api/admin/models/global/:modelId', async (_conf
|
|||||||
})
|
})
|
||||||
|
|
||||||
// GlobalModel 批量分配到 Providers
|
// GlobalModel 批量分配到 Providers
|
||||||
registerDynamicRoute('POST', '/api/admin/models/global/:modelId/assign-to-providers', async (config, params) => {
|
registerDynamicRoute('POST', '/api/admin/models/global/:modelId/assign-to-providers', async (config, _params) => {
|
||||||
await delay()
|
await delay()
|
||||||
requireAdmin()
|
requireAdmin()
|
||||||
const body = JSON.parse(config.data || '{}')
|
const body = JSON.parse(config.data || '{}')
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ const DOMPURIFY_CONFIG = {
|
|||||||
'class', 'id'
|
'class', 'id'
|
||||||
],
|
],
|
||||||
// 允许的URI协议
|
// 允许的URI协议
|
||||||
|
// eslint-disable-next-line no-useless-escape
|
||||||
ALLOWED_URI_REGEXP: /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
ALLOWED_URI_REGEXP: /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user