From 9d7e0023f439a00788996db2f31d5417f3403952 Mon Sep 17 00:00:00 2001 From: Nirodan Date: Thu, 22 Jan 2026 12:02:37 +0100 Subject: [PATCH] Fix auth redirects and add rebuild startup scripts --- docker-compose.dev.yml | 11 ++++++----- frontend/src/components/LoginForm.jsx | 6 ++++-- frontend/src/components/LogoutButton.jsx | 2 +- frontend/src/components/Md5Tool.jsx | 2 +- startup.cmd | 15 +++++++++++++++ startup.ps1 | 16 ++++++++++++++++ 6 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 startup.cmd create mode 100644 startup.ps1 diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 2039c86..92dd560 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -4,14 +4,15 @@ services: context: . dockerfile: Dockerfile ports: - - "5000:5000" + - "5050:5000" environment: - SECRET_KEY=dev-change-me - DB_CONFIG_PATH=/config/db_config.json volumes: - - ./backend:/app/backend - - ./frontend:/app/frontend - - ./backend/config:/config - - ./logs:/app/backend/logs + - config-data:/config + - logs-data:/app/backend/logs working_dir: /app/backend command: python app.py +volumes: + config-data: + logs-data: diff --git a/frontend/src/components/LoginForm.jsx b/frontend/src/components/LoginForm.jsx index 6d8db02..25f6c38 100644 --- a/frontend/src/components/LoginForm.jsx +++ b/frontend/src/components/LoginForm.jsx @@ -9,10 +9,12 @@ function LoginForm() { const login = async () => { try { - const res = await axios.post('/login', { username, password }); + const res = await axios.post('/api/login', { username, password }); localStorage.setItem('token', res.data.token); localStorage.setItem('role', res.data.role); - navigate('/'); + navigate('/', { replace: true }); + // ensure nav + route state reflect the new token immediately + window.location.href = '/'; } catch (err) { alert('Login fehlgeschlagen'); } diff --git a/frontend/src/components/LogoutButton.jsx b/frontend/src/components/LogoutButton.jsx index edbb6e6..9b6024d 100644 --- a/frontend/src/components/LogoutButton.jsx +++ b/frontend/src/components/LogoutButton.jsx @@ -6,7 +6,7 @@ function LogoutButton() { const logout = async () => { try { - await axios.post('/logout'); // sendet POST an /api/logout + await axios.post('/api/logout'); } catch (err) { console.warn('Logout-Request fehlgeschlagen, ignoriere...'); } diff --git a/frontend/src/components/Md5Tool.jsx b/frontend/src/components/Md5Tool.jsx index eb75814..1af5d95 100644 --- a/frontend/src/components/Md5Tool.jsx +++ b/frontend/src/components/Md5Tool.jsx @@ -7,7 +7,7 @@ function Md5Tool() { const hashPassword = async () => { try { - const res = await axios.post('/hash/md5', { password: input }); + const res = await axios.post('/api/hash/md5', { password: input }); setResult(res.data.md5); } catch (err) { diff --git a/startup.cmd b/startup.cmd new file mode 100644 index 0000000..fe1a6c2 --- /dev/null +++ b/startup.cmd @@ -0,0 +1,15 @@ +@echo off +setlocal +cd /d %~dp0 + +echo === Fresh rebuild + start === +Docker compose -f docker-compose.dev.yml down --rmi local --remove-orphans +Docker compose -f docker-compose.dev.yml up --build --force-recreate -d || goto :err + +Docker compose -f docker-compose.dev.yml ps +echo Open http://localhost:5050/ +goto :eof + +:err +echo Startup failed. See errors above. +exit /b 1 diff --git a/startup.ps1 b/startup.ps1 new file mode 100644 index 0000000..05dd053 --- /dev/null +++ b/startup.ps1 @@ -0,0 +1,16 @@ +# startup.ps1 - rebuilds and starts the stack fresh each time +Set-StrictMode -Version Latest +$ErrorActionPreference = "Stop" + +# always operate from repo root +Set-Location $PSScriptRoot + +Write-Host "Stopping and removing previous containers/images..." -ForegroundColor Cyan +docker compose -f docker-compose.dev.yml down --rmi local --remove-orphans + +Write-Host "Building + starting stack..." -ForegroundColor Cyan +docker compose -f docker-compose.dev.yml up --build --force-recreate -d + +Write-Host "Services status:" -ForegroundColor Cyan +docker compose -f docker-compose.dev.yml ps +Write-Host "Open http://localhost:5050/" -ForegroundColor Green