fix: 修复一些前端的小问题 (#641)

This commit is contained in:
ᴀᴍᴛᴏᴀᴇʀ
2026-02-06 14:12:18 +08:00
committed by GitHub
parent 580a66eb17
commit c49ec81d51
3 changed files with 36 additions and 35 deletions

View File

@@ -1,35 +1,35 @@
import type {
ApiResponse,
VideoSourcesResponse,
VideosRequest,
VideosResponse,
VideoResponse,
ResetVideoResponse,
ClearAndResetVideoResponse,
ResetFilteredVideosResponse,
UpdateVideoStatusRequest,
UpdateVideoStatusResponse,
ApiError,
FavoritesResponse,
ApiResponse,
ClearAndResetVideoResponse,
CollectionsResponse,
UppersResponse,
InsertFavoriteRequest,
InsertCollectionRequest,
InsertSubmissionRequest,
VideoSourcesDetailsResponse,
UpdateVideoSourceRequest,
Config,
DashBoardResponse,
FavoritesResponse,
QrcodeGenerateResponse as GenerateQrcodeResponse,
InsertCollectionRequest,
InsertFavoriteRequest,
InsertSubmissionRequest,
Notifier,
QrcodePollResponse as PollQrcodeResponse,
ResetFilteredVideosResponse,
ResetFilteredVideoStatusRequest,
ResetVideoResponse,
ResetVideoStatusRequest,
SysInfo,
TaskStatus,
ResetVideoStatusRequest,
UpdateVideoSourceResponse,
Notifier,
UpdateFilteredVideoStatusRequest,
UpdateFilteredVideoStatusResponse,
ResetFilteredVideoStatusRequest,
QrcodeGenerateResponse as GenerateQrcodeResponse,
QrcodePollResponse as PollQrcodeResponse
UpdateVideoSourceRequest,
UpdateVideoSourceResponse,
UpdateVideoStatusRequest,
UpdateVideoStatusResponse,
UppersResponse,
VideoResponse,
VideoSourcesDetailsResponse,
VideoSourcesResponse,
VideosRequest,
VideosResponse
} from './types';
import { wsManager } from './ws';
@@ -63,6 +63,10 @@ class ApiClient {
}
}
getAuthToken(): string | null {
return this.defaultHeaders['Authorization'] || localStorage.getItem('authToken');
}
// 清除认证 token
clearAuthToken() {
delete this.defaultHeaders['Authorization'];
@@ -340,6 +344,7 @@ const api = {
apiClient.subscribeToTasks(onMessage),
setAuthToken: (token: string) => apiClient.setAuthToken(token),
getAuthToken: () => apiClient.getAuthToken(),
clearAuthToken: () => apiClient.clearAuthToken()
};

View File

@@ -1,4 +1,5 @@
import { toast } from 'svelte-sonner';
import api from './api';
import type { SysInfo, TaskStatus } from './types';
// 支持的事件类型
@@ -61,7 +62,7 @@ export class WebSocketManager {
this.connectionPromise = new Promise((resolve, reject) => {
this.connecting = true;
const token = localStorage.getItem('authToken') || '';
const token = api.getAuthToken() || '';
try {
const protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';

View File

@@ -110,6 +110,7 @@
toast.error('加载配置失败', {
description: (error as ApiError).message
});
throw error;
} finally {
loading = false;
}
@@ -123,12 +124,13 @@
try {
api.setAuthToken(frontendToken.trim());
localStorage.setItem('authToken', frontendToken.trim());
loadConfig();
await loadConfig();
toast.success('前端认证成功');
} catch (error) {
console.error('前端认证失败:', error);
toast.error('认证失败请检查Token是否正确');
toast.error('认证失败请检查Token是否正确', {
description: (error as ApiError).message
});
}
}
@@ -191,13 +193,7 @@
onMount(() => {
setBreadcrumb([{ label: '设置' }]);
const savedToken = localStorage.getItem('authToken');
if (savedToken) {
frontendToken = savedToken;
api.setAuthToken(savedToken);
}
frontendToken = api.getAuthToken() || '';
loadConfig();
});
</script>
@@ -233,7 +229,6 @@
onclick={() => {
formData = null;
config = null;
localStorage.removeItem('authToken');
api.clearAuthToken();
frontendToken = '';
}}