登录后Passport.js重定向不起作用

时间:2019-01-04 22:33:16

标签: express passport.js passport-local express-session

编辑: 我只是尝试使用以下语法req.logIn(user, { session: false }, function(err) {并禁用了会话交互。似乎是这样工作的,所以问题出在这一特定部分。

我将Passport与结合到MySQL的本地策略结合使用,当我从数据库中检查数据时一切都很好。

app.post('/login', function(req, res, next) {
  passport.authenticate('local-login', function(err, user, message) {
    if (req.isAuthenticated()) {
      return res.redirect('/');
    }

    if (err) {
      return next(err);
    }

    if (!user) {
      return res.redirect('/login');
    }

    let username = user.username;
    req.session.username = username;
    req.session.email = user.email;
    req.session.verified = user.verified;
    req.session.connected = true;

    req.logIn(user, function(err) {
      if (err) { return next(err); }
      return res.redirect('/someURL');
    });

  })(req, res, next);

});

但是,req.logIn步骤不起作用,它确实更改了url,但页面从未呈现,因此我必须停止服务器来解锁页面。如果删除req.logIn函数,则不会遇到任何问题,并且重定向将完成此工作。

如果我在此函数之后(使用await运算符编写重定向),它仍然无法正常工作。我猜logIn进行了一些后台操作,例如在会话中存储用户的信息,但是由于在控制台中没有看到任何错误,而Chrome没有得到任何响应,因此我无法弄清楚出了什么问题。{{3} }

0 个答案:

没有答案