This commit is contained in:
cay 2026-03-29 14:29:24 +01:00
parent 5a719d126c
commit 4c59a748d8

View File

@ -44,14 +44,38 @@ router.post("/", async (req, res) => {
/* ================================
Prüfen ob User bereits eingeloggt
(aktive Session mit passendem Token)
================================= */
if (user.session_token) {
return res.render("index", {
error: "Dieser Account ist bereits eingeloggt. Bitte zuerst ausloggen.",
servers,
extraServers: [],
});
// Prüfen ob wirklich eine aktive Session existiert
// durch Vergleich mit dem gespeicherten Token.
// Gibt es noch eine aktive Session → Login blockieren.
// Nach Server-Absturz ist session_token zwar gesetzt,
// aber keine gültige Session mehr vorhanden →
// Token wird einfach überschrieben (alter Login wird gekickt).
const hasActiveSession = req.sessionStore?.sessions
? await new Promise((resolve) => {
req.sessionStore.all((err, sessions) => {
if (err || !sessions) return resolve(false);
const active = Object.values(sessions).some((s) => {
try {
const parsed = typeof s === "string" ? JSON.parse(s) : s;
return parsed?.user?.token === user.session_token;
} catch { return false; }
});
resolve(active);
});
})
: false;
if (hasActiveSession) {
return res.render("index", {
error: "Dieser Account ist bereits eingeloggt. Bitte zuerst ausloggen.",
servers,
extraServers: [],
});
}
}
/* ================================