I am building a simple login page and home page application. I want to restrict user from going to home page after logging out. Please help
app.js
const express = require('express')
const bodyParser = require('body-parser')
const session = require('express-session')
const path = require('path')
const loginRoutes = require('./routes/loginRoutes')
const homeRoutes = require('./routes/homeRoutes')
const app = express();
app.use(session({
secret:"key",
resave:false,
saveUninitialized:false
}))
app.set("view engine", "ejs");
app.set("views", "views");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, "public")));
app.use('/' , loginRoutes)
app.use('/home' , homeRoutes)
app.listen(3000)
loginRoutes.js#
const express = require('express');
const router = express.Router();
router.get('/' , (req, res) => {
req.session.destroy();
res.render('login', {pageTitle: 'Login', invalidCredentials: true});
})
router.post('/' , (req, res) => {
res.clearCookie()
req.session.destroy();
res.render('login', {pageTitle: 'Login', invalidCredentials: true});
})
module.exports = router
homeRoutes.js
const express = require('express')
const bodyParser = require('body-parser')
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
const credentials = require('../credentials');
const session = require('express-session');
const router = express.Router();
router.get('/' , (req, res) => {
res.render('login', {pageTitle: 'Login', invalidCredentials: true});
})
router.post('/' , (req, res) => {
if(credentials.user === req.body.name && credentials.password === req.body.password){
req.session.user = req.body.name
res.render('home' , {name: req.session.user, pageTitle: 'Home'});
}
else{
res.render('login', {pageTitle: 'Login' , invalidCredentials: false});
}
})
module.exports = router
I am expecting some way to redirect the user to login page if the user tries to press back button in browser to go back to home page after logout.