dtzj
This commit is contained in:
parent
5a719d126c
commit
4c59a748d8
@ -44,14 +44,38 @@ router.post("/", async (req, res) => {
|
|||||||
|
|
||||||
/* ================================
|
/* ================================
|
||||||
Prüfen ob User bereits eingeloggt
|
Prüfen ob User bereits eingeloggt
|
||||||
|
(aktive Session mit passendem Token)
|
||||||
================================= */
|
================================= */
|
||||||
|
|
||||||
if (user.session_token) {
|
if (user.session_token) {
|
||||||
return res.render("index", {
|
// Prüfen ob wirklich eine aktive Session existiert
|
||||||
error: "Dieser Account ist bereits eingeloggt. Bitte zuerst ausloggen.",
|
// durch Vergleich mit dem gespeicherten Token.
|
||||||
servers,
|
// Gibt es noch eine aktive Session → Login blockieren.
|
||||||
extraServers: [],
|
// 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: [],
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================
|
/* ================================
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user