Freigabe → main: Mobile UI, Webhook, IMAP, Zahlung-Workflow und weitere Features #5
@@ -28,12 +28,19 @@ export class ApiKeyGuard implements CanActivate {
|
|||||||
if (apiKey) source = 'apiKey query param';
|
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) {
|
if (!apiKey) {
|
||||||
const auth: string | undefined = request.headers['authorization'];
|
const auth: string | undefined = request.headers['authorization'];
|
||||||
if (auth?.startsWith('Bearer ')) {
|
if (auth?.startsWith('Bearer ')) {
|
||||||
apiKey = auth.slice(7);
|
const token = auth.slice(7);
|
||||||
source = 'Authorization: Bearer';
|
if (token.startsWith('pm_')) {
|
||||||
|
apiKey = token;
|
||||||
|
source = 'Authorization: Bearer';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user