Success或FailureRedirect无法正常工作 - Passportjs

时间:2017-08-04 13:38:20

标签: javascript node.js express mongoose passport.js

以下是我的本地策略,现在对我来说运行良好。

passport.use(new LocalStrategy(
    function(username, password, done) {
    User.getUserByUsername(username, function(err, user){
      if(err) console.log(err);
      if(!user){
        console.log("No user");
        done(null, false, {message: 'Unknown User'});}
        console.log("success");
        done(null, true, username);

 User.comparePassword(password, user.password, function(err, isMatch){
      if(err) console.log(err);
      if(isMatch){
        console.log("There is a match");
        done(null, true, user);
      } else {
        console.log("Invalid password");
        done(null, false, {message: 'Invalid password'});
      }});
   });
  }));

但是,在数据库中找到用户名和相应的密码后,我想重定向到另一个页面。我在发布路由中设置了passport.authenticate()方法但是在数据库中找到用户名和密码之后,页面重新加载几分钟,直到它返回找不到网页错误,failRedirect或successRedirect路由都不起作用

router.post("/users/login",
    passport.authenticate("local", {
        successRedirect:"/",
         failureRedirect:"/login",
            failureFlash:true}, function(err, user, info){
        if(err){console.log(err);}
        console.log(user)
        console.log(info)
    }), 
  function(req, res){
        res.redirect("/");
  });

0 个答案:

没有答案