我正在寻找一种方法,在成功登录后将用户重定向到他或她之前所在的页面。例如,如果用户想使用仅限会员访问的功能,他或她将被重定向到登录页面,并在成功登录后,将被重定向回用户尝试在登录之前访问的页面。这是我目前的进展:
中间件:
中间件:
function requireLogin(req, res, next){
if (!req.user) res.redirect('/login');
else next();
}
登录:
app.post('/login', function(req,res){
User.findOne({email: req.body.email}, function(err, user){
if (!user) res.render('login.jade',{error: 'Invalid email or password.'});
else{
if (bcrypt.compareSync(req.body.password,user.password)) {
req.session.user = user; //set cookie session
res.redirect('/forums');
}
else res.render('login.jade',{error: 'Invalid email or password.'});
}
});
});
示例路由:
app.post('/article/comment', requireLogin, function(req,res){...
我看过一些关于这个主题的SO帖子,但是没有真正有资格的答案(尤其是没有PassportJS的情况下)。有什么建议吗?
http referer
头的解决方案。 - undefined