Add basic auth functionality

This commit is contained in:
2022-05-04 01:38:25 +02:00
parent 856e514da7
commit 6261dbb04c
5 changed files with 147 additions and 0 deletions

32
server/api/auth.js Normal file
View File

@ -0,0 +1,32 @@
export class Auth {
activeSessions = [];
constructor() {}
login = (req, res) => {
if (!req.body.password) {
res.status(401).sendFile("login.html", { root: "../" });
return;
} else {
if (req.body.password == process.env.AUTH_PASSWORD) {
const sessionId = Math.random().toString(36).slice(-8);
this.activeSessions.push(sessionId);
res.cookie("session", sessionId, { httpOnly: true });
res.redirect("/");
} else {
res.status(401).sendFile("login.html", { root: "../" });
return;
}
}
};
checkLogin = (req, res, next) => {
if (!req.cookies.session) {
res.status(401).sendFile("login.html", { root: "../" });
return;
} else {
if (!this.activeSessions.includes(req.cookies.session)) {
res.status(401).sendFile("login.html", { root: "../" });
return;
}
}
next();
};
}