diff --git a/paperless-backend/src/auth/api-key.guard.ts b/paperless-backend/src/auth/api-key.guard.ts index fad19c5..c34531a 100644 --- a/paperless-backend/src/auth/api-key.guard.ts +++ b/paperless-backend/src/auth/api-key.guard.ts @@ -28,12 +28,19 @@ export class ApiKeyGuard implements CanActivate { if (apiKey) source = 'apiKey query param'; } - // Fallback to Authorization: Bearer (used by SSE clients that can't set X-API-Key) + // Fallback to Authorization: Bearer (used by SSE clients that can't set + // X-API-Key). Nur akzeptieren, wenn das Token wie ein API-Key aussieht + // (Präfix "pm_"). Ein (abgelaufenes) JWT als Bearer-Token wird hier ignoriert, + // statt es fälschlich als API-Key zu prüfen – das vermeidet die irreführende + // "Invalid API Key"-Warnung beim normalen JWT-Ablauf. if (!apiKey) { const auth: string | undefined = request.headers['authorization']; if (auth?.startsWith('Bearer ')) { - apiKey = auth.slice(7); - source = 'Authorization: Bearer'; + const token = auth.slice(7); + if (token.startsWith('pm_')) { + apiKey = token; + source = 'Authorization: Bearer'; + } } }