Versie module 1 van 26-7

This commit is contained in:
2026-07-26 22:18:52 +02:00
commit 26a820b41a
39 changed files with 3663 additions and 0 deletions
+165
View File
@@ -0,0 +1,165 @@
const bcrypt = require("bcrypt");
const db = require("../config/database");
const HouseholdService = require("../services/HouseholdService");
class AuthController {
registerForm(req, res) {
res.render("auth/register", {
title: "Registreren"
});
}
async register(req, res) {
const {
name,
email,
password
} = req.body;
const existingUser = db.prepare(
"SELECT id FROM users WHERE email = ?"
).get(email);
if (existingUser) {
req.flash(
"error",
"E-mailadres bestaat al"
);
return res.redirect("/register");
}
const passwordHash = await bcrypt.hash(
password,
12
);
const result = db.prepare(`
INSERT INTO users
(
name,
email,
password
)
VALUES (?, ?, ?)
`).run(
name,
email,
passwordHash
);
const userId = result.lastInsertRowid;
HouseholdService.createForUser(
userId,
`${name} huishouden`
);
req.session.userId = userId;
res.redirect("/");
}
loginForm(req, res) {
res.render("auth/login", {
title: "Inloggen"
});
}
async login(req, res) {
const {
email,
password
} = req.body;
const user = db.prepare(
"SELECT * FROM users WHERE email = ?"
).get(email);
if (!user) {
req.flash(
"error",
"Ongeldige gegevens"
);
return res.redirect("/login");
}
const valid = await bcrypt.compare(
password,
user.password
);
if (!valid) {
req.flash(
"error",
"Ongeldige gegevens"
);
return res.redirect("/login");
}
req.session.userId = user.id;
res.redirect("/");
}
logout(req, res) {
req.session.destroy(() => {
res.redirect("/login");
});
}
}
module.exports = new AuthController();