如何使用express.js/node.js重定向2个页面

如何使用express.js/node.js重定向2个页面,node.js,express,passport.js,Node.js,Express,Passport.js,在用户登录后,我尝试将其重定向到登录前的同一页面 示例:如果用户在单击登录链接之前在主页上,如果他成功登录,我会将他发送回主页。在用户进入登录页面之前,对每个页面都执行相同的操作 代码应该是这样的: router.post("/login", passport.authenticate("local", { successRedirect: "two pages back", failureRedirect: "/login" }), (req,

在用户登录后,我尝试将其重定向到登录前的同一页面

示例:如果用户在单击登录链接之前在主页上,如果他成功登录,我会将他发送回主页。在用户进入登录页面之前,对每个页面都执行相同的操作

代码应该是这样的:

router.post("/login", passport.authenticate("local",
    {
        successRedirect: "two pages back",
        failureRedirect: "/login"
    }), (req, res)=> {
        if(err){
            console.log(err);
            return res.redirect("/login");
        }
});
我试过这个:

successRedirect: "back" 
但它会将用户重定向回登录页面


谢谢你的帮助,我正在使用express.js/node.js/passport.js

一种方法是在用户单击登录链接时存储用户的当前页面。有许多方法可以实现这一点,但最简单的方法可能是使用req.headers对象的referer属性

因此,在你的问题中,类似这样的方法应该有效:

router.post("/login", passport.authenticate("local",
{
    successRedirect: req.headers.referer,      //should redirect to page prior to login
    failureRedirect: "/login"
}), (req, res)=> {
    if(err){
        console.log(err);
        return res.redirect("/login");
    }
});

一种方法是在用户单击登录链接时存储用户的当前页面。有许多方法可以实现这一点,但最简单的方法可能是使用req.headers对象的referer属性

因此,在你的问题中,类似这样的方法应该有效:

router.post("/login", passport.authenticate("local",
{
    successRedirect: req.headers.referer,      //should redirect to page prior to login
    failureRedirect: "/login"
}), (req, res)=> {
    if(err){
        console.log(err);
        return res.redirect("/login");
    }
});

我想知道怎么做

首先,当对登录页面发出GET请求时,您需要存储用户的当前页面req.headers.referer,并在呈现登录视图时将其发送回

router.get("/login", (req, res)=> {
    res.render("login", {referer:req.headers.referer});
});
之后,在登录表单中,需要将referer作为隐藏输入的值。我在这里使用ejs模板

<input type="hidden" name="referer" value= <%= referer %> >

我想知道怎么做

首先,当对登录页面发出GET请求时,您需要存储用户的当前页面req.headers.referer,并在呈现登录视图时将其发送回

router.get("/login", (req, res)=> {
    res.render("login", {referer:req.headers.referer});
});
之后,在登录表单中,需要将referer作为隐藏输入的值。我在这里使用ejs模板

<input type="hidden" name="referer" value= <%= referer %> >

此解决方案不起作用,因为未定义req。此解决方案不起作用,因为未定义req。