Token löschen für vollständigen Logout

This commit is contained in:
Nirodan
2025-06-16 10:28:51 +02:00
parent 492bc31393
commit 77b95762f7
3 changed files with 15 additions and 7 deletions
+4
View File
@@ -102,6 +102,10 @@ def login():
print("[Fehler bei /api/login]:", e) print("[Fehler bei /api/login]:", e)
return jsonify({"message": "Serverfehler"}), 500 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__': if __name__ == '__main__':
+10 -6
View File
@@ -1,16 +1,20 @@
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import axios from '../services/api';
function LogoutButton() { function LogoutButton() {
const navigate = useNavigate(); const navigate = useNavigate();
const logout = () => { const logout = async () => {
localStorage.clear(); try {
navigate('/login'); 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 <button onClick={logout}>Logout</button>;
<button onClick={logout}>Logout</button>
);
} }
export default LogoutButton; export default LogoutButton;
+1 -1
View File
@@ -1,7 +1,7 @@
import axios from 'axios'; import axios from 'axios';
const instance = axios.create({ 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 => { instance.interceptors.request.use(config => {