From 77b95762f71f75b5f3bbea708614081724f44330 Mon Sep 17 00:00:00 2001 From: Nirodan Date: Mon, 16 Jun 2025 10:28:51 +0200 Subject: [PATCH] =?UTF-8?q?Token=20l=C3=B6schen=20=20f=C3=BCr=20vollst?= =?UTF-8?q?=C3=A4ndigen=20Logout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.py | 4 ++++ frontend/src/components/LogoutButton.jsx | 16 ++++++++++------ frontend/src/services/api.js | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/backend/app.py b/backend/app.py index 97e3cce..9f3de91 100644 --- a/backend/app.py +++ b/backend/app.py @@ -102,6 +102,10 @@ def login(): print("[Fehler bei /api/login]:", e) return jsonify({"message": "Serverfehler"}), 500 +@app.route('/api/logout', methods=['POST']) +def logout(): + # Aktuell macht das nichts, aber der Client bekommt Bestätigung + return jsonify({"message": "Logout erfolgreich"}) if __name__ == '__main__': diff --git a/frontend/src/components/LogoutButton.jsx b/frontend/src/components/LogoutButton.jsx index d343282..edbb6e6 100644 --- a/frontend/src/components/LogoutButton.jsx +++ b/frontend/src/components/LogoutButton.jsx @@ -1,16 +1,20 @@ import { useNavigate } from 'react-router-dom'; +import axios from '../services/api'; function LogoutButton() { const navigate = useNavigate(); - const logout = () => { - localStorage.clear(); - navigate('/login'); + const logout = async () => { + try { + await axios.post('/logout'); // sendet POST an /api/logout + } catch (err) { + console.warn('Logout-Request fehlgeschlagen, ignoriere...'); + } + localStorage.clear(); // entfernt token + role + window.location.href = '/login'; // harter Redirect }; - return ( - - ); + return ; } export default LogoutButton; diff --git a/frontend/src/services/api.js b/frontend/src/services/api.js index f33ee14..b0d0684 100644 --- a/frontend/src/services/api.js +++ b/frontend/src/services/api.js @@ -1,7 +1,7 @@ import axios from 'axios'; const instance = axios.create({ - baseURL: import.meta.env.VITE_API_URL || 'http://127.0.0.1:5000/api', + baseURL: import.meta.env.VITE_API_URL, }); instance.interceptors.request.use(config => {