Reputation: 399
My app restricts users to access certain functionalities and redirects to a login page if not logged in. I want to save the URL that was requested before the login page. How can I do so? I have tried using locals:
function restrict(req, res, next) {
if (!req.session.userName){
res.locals['url'] = req.originaUrl;
res.redirect('/login');
}
else
next();
}
app.get('/login', require('./src/controllers/pages/loginPageController'))
How can I access locals in my login controller?
Upvotes: 0
Views: 101
Reputation: 158
you can use sessions
req.session
var users = require('./src/controllers/pages/loginPageController');
var session = require('client-sessions');
function requireLogIn(req,res,next){
if(req.session.user)
next();
else if(!req.session.user) {
res.redirect('/loginPage');
}
}
// for storing sessions
app.use(session({
cookieName: 'session',
secret: 'this-is-my-unencrypted-key-it-will-be-encrypted-by-client-sessions- package',
duration: 60 * 60 * 1000,
activeDuration: 30 * 60 * 1000,
}));
app.use('/users', requireLogIn, users);
Upvotes: 1
Reputation: 5682
I am not a node.js person but you can usually choose one of:
session
to store the URL that the user visitedlogin?landPath=/path/the/user/went/to/first/time
Hope it helps
Upvotes: 0