fix: auth on uploads (401→login redirect), token in download URLs

This commit is contained in:
Markov 2026-02-25 11:16:10 +01:00
parent f676329206
commit 8f2c999245

View File

@ -333,6 +333,11 @@ export async function uploadProjectFile(slug: string, file: File, description?:
headers: token ? { Authorization: `Bearer ${token}` } : {},
body: formData,
});
if (res.status === 401) {
localStorage.removeItem("tb_token");
window.location.href = "/login";
throw new Error("Unauthorized");
}
if (!res.ok) {
const err = await res.json().catch(() => ({ error: res.statusText }));
throw new Error(err.error || `HTTP ${res.status}`);
@ -341,7 +346,9 @@ export async function uploadProjectFile(slug: string, file: File, description?:
}
export function getProjectFileUrl(slug: string, fileId: string): string {
return `${API_BASE}/api/v1/projects/${slug}/files/${fileId}/download`;
const token = getToken();
const qs = token ? `?token=${encodeURIComponent(token)}` : "";
return `${API_BASE}/api/v1/projects/${slug}/files/${fileId}/download${qs}`;
}
export async function updateProjectFile(slug: string, fileId: string, data: { description?: string }): Promise<ProjectFile> {
@ -372,6 +379,11 @@ export async function uploadFile(file: File): Promise<UploadedFile> {
headers: token ? { Authorization: `Bearer ${token}` } : {},
body: formData,
});
if (res.status === 401) {
localStorage.removeItem("tb_token");
window.location.href = "/login";
throw new Error("Unauthorized");
}
if (!res.ok) {
const err = await res.json().catch(() => ({ error: res.statusText }));
throw new Error(err.error || `HTTP ${res.status}`);
@ -380,7 +392,9 @@ export async function uploadFile(file: File): Promise<UploadedFile> {
}
export function getAttachmentUrl(attachmentId: string): string {
return `${API_BASE}/api/v1/attachments/${attachmentId}/download`;
const token = getToken();
const qs = token ? `?token=${encodeURIComponent(token)}` : "";
return `${API_BASE}/api/v1/attachments/${attachmentId}/download${qs}`;
}
// --- Project Members ---