fix: Download Token-Fehler - Token als Query-Parameter unterstuetzen
Problem: window.location.href sendet keinen Authorization-Header, daher scheiterten alle direkten Downloads (Dateien + Ordner-ZIP) mit 'Token fehlt'. Loesung: - Backend: token_required akzeptiert jetzt auch ?token=... als Query-Parameter (Fallback wenn kein Authorization-Header) - Frontend: downloadUrl() haengt den Access-Token automatisch als Query-Parameter an die Download-URL an Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,10 @@ def token_required(f):
|
|||||||
if auth_header.startswith('Bearer '):
|
if auth_header.startswith('Bearer '):
|
||||||
token = auth_header[7:]
|
token = auth_header[7:]
|
||||||
|
|
||||||
|
# Fallback: token as query parameter (for direct browser downloads)
|
||||||
|
if not token:
|
||||||
|
token = request.args.get('token', '')
|
||||||
|
|
||||||
if not token:
|
if not token:
|
||||||
return jsonify({'error': 'Token fehlt'}), 401
|
return jsonify({'error': 'Token fehlt'}), 401
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import apiClient from '../api/client'
|
import apiClient from '../api/client'
|
||||||
|
import { useAuthStore } from './auth'
|
||||||
|
|
||||||
export const useFilesStore = defineStore('files', () => {
|
export const useFilesStore = defineStore('files', () => {
|
||||||
const files = ref([])
|
const files = ref([])
|
||||||
@@ -72,7 +73,8 @@ export const useFilesStore = defineStore('files', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function downloadUrl(fileId) {
|
function downloadUrl(fileId) {
|
||||||
return `/api/files/${fileId}/download`
|
const auth = useAuthStore()
|
||||||
|
return `/api/files/${fileId}/download?token=${encodeURIComponent(auth.accessToken || '')}`
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user