image_node/routes/login.js
2020-04-28 23:16:19 +02:00

44 lines
945 B
JavaScript

let router = require("express").Router();
let fs = require("fs");
let passwordHash = require('password-hash');
router.get("/", (req, res) => {
if (req.session.login) {
res.redirect("/");
} else {
let fail = false;
if ("fail" in req.query) {
fail = true;
}
let path = null;
if ("path" in req.query) {
path = req.query.path;
}
res.render("login", {title: "login", fail: fail, path: path});
}
});
router.post("/", (req, res) => {
if ("username" in req.body && "password" in req.body) {
file = JSON.parse(fs.readFileSync("users.json"));
if (req.body.username in file && passwordHash.verify(req.body.password, file[req.body.username])) {
req.session.login = true;
req.session.save();
if ("path" in req.query) {
res.redirect(req.query.path);
} else {
res.redirect("/");
}
} else {
res.redirect("/login?fail");
}
} else {
res.redirect("/login?fail");
}
});
module.exports = router;