From eb2273e28cd582d64505851aee386ffc154e76d8 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Tue, 23 Sep 2025 09:13:51 +0200 Subject: [PATCH] =?UTF-8?q?Aktualisiert=20die=20Token-Lebensdauer=20im=20A?= =?UTF-8?q?uthentifizierungsdienst=20auf=203=20Stunden=20und=20verbessert?= =?UTF-8?q?=20die=20Logik=20zur=20Auswahl=20der=20Startposition=20im=20Cou?= =?UTF-8?q?rtDrawingTool.vue,=20um=20eine=20Standard-Startposition=20festz?= =?UTF-8?q?ulegen,=20wenn=20keine=20ausgew=C3=A4hlt=20ist.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/services/authService.js | 4 ++-- frontend/src/components/CourtDrawingTool.vue | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/services/authService.js b/backend/services/authService.js index f5d0f78..a054fa0 100644 --- a/backend/services/authService.js +++ b/backend/services/authService.js @@ -33,11 +33,11 @@ const login = async (email, password) => { if (!user || !(await bcrypt.compare(password, user.password))) { throw { status: 401, message: 'Ungültige Anmeldedaten' }; } - const token = jwt.sign({ userId: user.id }, process.env.JWT_SECRET, { expiresIn: '1h' }); + const token = jwt.sign({ userId: user.id }, process.env.JWT_SECRET, { expiresIn: '3h' }); await UserToken.create({ userId: user.id, token, - expiresAt: new Date(Date.now() + 3600 * 1000), + expiresAt: new Date(Date.now() + 3 * 3600 * 1000), }); return { token }; }; diff --git a/frontend/src/components/CourtDrawingTool.vue b/frontend/src/components/CourtDrawingTool.vue index 3119c7b..736592a 100644 --- a/frontend/src/components/CourtDrawingTool.vue +++ b/frontend/src/components/CourtDrawingTool.vue @@ -552,7 +552,7 @@ export default { positions.forEach(pos => { const isSelected = this.targetPosition === pos.number.toString(); - const isTargetSelected = this.targetPosition !== ''; + const isTargetSelected = this.targetPosition !== '' && this.targetPosition !== null; // Transparenz für nicht-ausgewählte Kreise wenn ein Target ausgewählt ist if (isTargetSelected && !isSelected) { @@ -890,6 +890,13 @@ export default { const clickedTarget = this.checkTargetPositionClick(clickX, clickY); if (clickedTarget) { this.targetPosition = clickedTarget; + + // Wenn keine Startposition ausgewählt ist, setze eine Standard-Startposition + if (!this.selectedStartPosition) { + this.selectedStartPosition = 'AS'; + this.selectedCirclePosition = 'middle'; + } + this.drawCourt(); // Neu zeichnen für Zielposition-Hervorhebung this.updateTextFields(); return;