【问题标题】:How to determine specific successRedirect in node js using express?如何使用express确定节点js中的特定successRedirect?
【发布时间】:2017-07-02 06:49:01
【问题描述】:

我对passport.authenticate 中的successRedirecting 有疑问。 我在 nodejs 中使用 passport.js 和本地策略,并表示用户登录并尝试制定特定的成功重定向路由。

例如,如果我使用用户 id 登录:gpaul(假装成功登录),那么successRedirect 路由希望为'?channel=gpaul'。

我做了如下代码

var data_1 = {email:''};
app.post('/login',
  function (req,res,next){
    req.flash("email");
    data_1.email = req.body.email;
    console.log(data_1.email);
    next();
  }, passport.authenticate('local-login', {
    successRedirect : ('/status.html?channel='+ data_1.email),
    failureRedirect : '/login',
    failureFlash : true
  })
);

执行上述代码后,地址为空白, 本地主机:4000/?channel= 如何将 data_1.email 放入 successRedirect?

有没有人对此有任何想法...? 请在这里帮我..

谢谢。

【问题讨论】:

    标签: node.js passport-local passport.js


    【解决方案1】:

    尝试使用Custom Callback

    app.post('/login', function(req, res, next) {
    passport.authenticate('local-login', function(err, user, info) {
      if (err) { return next(err); }
      if (!user) { return res.redirect('/login'); }
      return res.redirect('/status.html?channel='+ req.body.email);
      })(req, res, next);
    });
    

    在这个实现中,回调可以通过闭包访问reqres 对象。因此,email 不会为空(与您的实现不同)

    【讨论】:

    • 非常感谢您帮助我。 :)
    • 你能再帮我一个吗?如果你不忙?
    • 当然可以。告诉我
    • stackoverflow.com/questions/42215663/… 这是我发布的另一个问题.. app.get('/', function (req,res) { res.redirect('/login'); });不重定向.. :'(
    • 抱歉我的帖子很乱..:'(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多