dok/routes/login.js
2026-03-11 19:08:32 +00:00

63 lines
1.3 KiB
JavaScript

const express = require("express");
const router = express.Router();
const db = require("../database/database");
const bcrypt = require("bcrypt");
/* ================================
Login verarbeiten
================================ */
router.post("/", async (req, res) => {
const { username, password } = req.body;
try {
/* Server laden (für index.ejs) */
const [servers] = await db.query("SELECT * FROM servers");
const [rows] = await db.query(
"SELECT * FROM accounts WHERE username = ? AND verified = 1",
[username],
);
if (rows.length === 0) {
return res.render("index", {
error: "Login fehlgeschlagen",
servers,
});
}
const user = rows[0];
const passwordMatch = await bcrypt.compare(password, user.password);
if (!passwordMatch) {
return res.render("index", {
error: "Login fehlgeschlagen",
servers,
});
}
/* Session speichern */
req.session.user = {
id: user.id,
username: user.username,
};
/* Wenn kein Charaktername existiert */
if (!user.ingame_name) {
return res.redirect("/create-character");
}
/* Wenn Charakter existiert */
res.redirect("/launcher");
} catch (error) {
console.error(error);
res.send("Login Fehler");
}
});
module.exports = router;