Wie programmiert man einen Redirect nach Session-Timeout?
Antwort vomEin Redirect nach Session-Timeout wird typischerweise so umgesetzt: 1. **Session serverseitig mit Ablaufzeit verwalten** - z. B. per PHP, Node.js, Java, ASP.NET - bei Inaktivität oder nach fester Zeit wird die Session ungültig 2. **Bei jedem Request prüfen** - ist die Session abgelaufen, antwortet der Server mit: - Redirect auf Login-Seite, oder - HTTP `401 Unauthorized` bei APIs 3. **Optional zusätzlich clientseitig Timer setzen** - für bessere UX - z. B. automatische Weiterleitung nach X Minuten ohne Aktivität ### Beispiel in PHP ```php session_start(); $timeout = 1800; // 30 Minuten if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $timeout) { session_unset(); session_destroy(); header("Location: /login.php?timeout=1"); exit; } $_SESSION['last_activity'] = time(); ``` ### Beispiel in JavaScript für Frontend-Timer ```javascript let timeout; const maxIdleTime = 30 * 60 * 1000; // 30 Minuten function resetTimer() { clearTimeout(timeout); timeout = setTimeout(() => { window.location.href = "/login?timeout=1"; }, maxIdleTime); } ["click", "mousemove", "keydown", "scroll"].forEach(event => window.addEventListener(event, resetTimer) ); resetTimer(); ``` ### Wichtig Ein **reiner JavaScript-Redirect reicht nicht sicher aus**, weil die Session **serverseitig** ablaufen muss. Der sichere Weg ist: - **Server prüft Session** - **Client leitet optional komfortabel weiter** Kurzform: - **Webseite:** Session prüfen → bei Timeout Redirect auf Login - **API:** bei Timeout `401` zurückgeben → Frontend reagiert mit Redirect