From e3b7ae018f45fa2c7f9fb389389d30e744e7dacc Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Tue, 11 Feb 2025 07:55:18 +0100 Subject: [PATCH] refactor(routes/login): refactor login fn I also got rid of the deprecated use of "expires" - setting maxAge to undefined is the preferred way --- src/routes/login.ts | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/routes/login.ts b/src/routes/login.ts index 7b804896e..21ebaf280 100644 --- a/src/routes/login.ts +++ b/src/routes/login.ts @@ -57,30 +57,27 @@ function setPassword(req: Request, res: Response) { } function login(req: Request, res: Response) { - const guessedPassword = req.body.password; + const { password, rememberMe } = req.body; - if (verifyPassword(guessedPassword)) { - const rememberMe = req.body.rememberMe; - - req.session.regenerate(() => { - if (rememberMe) { - req.session.cookie.maxAge = 21 * 24 * 3600000; // 3 weeks - } else { - req.session.cookie.expires = null; - } - - req.session.loggedIn = true; - res.redirect("."); - }); - } else { + if (!verifyPassword(password)) { // note that logged IP address is usually meaningless since the traffic should come from a reverse proxy log.info(`WARNING: Wrong password from ${req.ip}, rejecting.`); - res.status(401).render("login", { + return res.status(401).render("login", { failedAuth: true, assetPath: assetPath }); } + + req.session.regenerate(() => { + const sessionMaxAge = 21 * 24 * 3600000 // 3 weeks in Milliseconds + + req.session.cookie.maxAge = (rememberMe) ? sessionMaxAge : undefined; + req.session.loggedIn = true; + + res.redirect("."); + }); + } function verifyPassword(guessedPassword: string) {