diff --git a/app.js b/app.js index 4eae037..2ce1c48 100644 --- a/app.js +++ b/app.js @@ -106,7 +106,7 @@ async function main() { const path = `/${req.path.split('/')?.[1] ?? ''}`; if (!allowed.includes(path) && !req.session.authenticated) - return res.redirect('/login'); + return res.redirect(`/login?redirect_to=${req.path}`); next(); }); diff --git a/routes/main.js b/routes/main.js index df1f250..c252749 100644 --- a/routes/main.js +++ b/routes/main.js @@ -21,7 +21,8 @@ router.get('/login', (req, res) => { return res.redirect('/admin'); return res.render('login', { - title: 'Stratos - Login' + title: 'Stratos - Login', + redirect_to: req.query?.redirect_to }); }); @@ -79,6 +80,10 @@ router.post('/login', async (req, res) => { if (await u.verifyPassword(fields.get('password'))) { u.login(req); + + if (fields.get('redirectTo').length > 0) + return res.redirect(fields.get('redirectTo')); + return res.redirect('/admin'); } diff --git a/views/login.hbs b/views/login.hbs index 61ad4cc..4f4da2e 100644 --- a/views/login.hbs +++ b/views/login.hbs @@ -5,6 +5,8 @@ + + Not got an account yet? Sign up