fix: support authenticated video citation playback
This commit is contained in:
@@ -38,6 +38,13 @@ const normalizeUrl = (url: string) => `${currentApiBase()}${url.startsWith('/')
|
||||
|
||||
export const apiUrl = normalizeUrl;
|
||||
|
||||
export const apiMediaUrl = (url: string) => {
|
||||
const normalized = normalizeUrl(url);
|
||||
if (/^https?:\/\//i.test(normalized) || typeof window === 'undefined') return normalized;
|
||||
const origin = window.location?.origin;
|
||||
return /^https?:\/\//i.test(origin || '') ? new URL(normalized, `${origin}/`).toString() : normalized;
|
||||
};
|
||||
|
||||
export const authHeaders = (json = true, includeAuth = true) => {
|
||||
const auth = getAuth();
|
||||
return {
|
||||
|
||||
@@ -9,7 +9,7 @@ import type {
|
||||
SummaryCardResponse,
|
||||
KnowledgeCitationDetail
|
||||
} from '@/types/api';
|
||||
import { apiRequest, apiUrl, authHeaders, readTextPayload } from './api';
|
||||
import { apiMediaUrl, apiRequest, apiUrl, authHeaders, readTextPayload } from './api';
|
||||
import { getSelectedPosition } from './auth';
|
||||
import { fileSelectionFailure } from '../utils/file-selection';
|
||||
import { withPlatformFileSelection } from './file-selection-lifecycle';
|
||||
@@ -264,7 +264,7 @@ export const loadKnowledgeCitationMediaUrl = async (detailRef: string) => {
|
||||
clearAuthOnUnauthorized: false
|
||||
});
|
||||
if (!response.url?.startsWith('/api/knowledge/resources/')) throw new Error('视频地址无效');
|
||||
return apiUrl(response.url);
|
||||
return apiMediaUrl(response.url);
|
||||
};
|
||||
|
||||
const normalizeUnifiedResponse = (response: UnifiedKnowledgeResponse): KnowledgeSearchResponse => {
|
||||
|
||||
Reference in New Issue
Block a user