Passport中的自动failureRedirect

时间:2017-07-12 20:13:53

标签: node.js passport.js

我的代码有问题。当我尝试登录时没有插入用户名和密码

  

POST / user / login 302 1.289 ms - 32   GET / user / hehehehehe 404 6.310 ms - 1272

如果我尝试只登录登录,则结果相同

如果我尝试使用用户名和密码正确或不正确登录

  

500内部服务器错误

有人能告诉我,错误在哪里?那是第一次加载failureRedirect。尝试登录后我应该检查的第一件事是什么?     router.post('/ create',function(req,res,next){

elif

重要 首先加载哪些功能? 1 - /登录 那么这段代码?

  var newUser = {
    username: req.body.username,
    password: req.body.password
  }
  console.log(req.body)

  req.checkBody('username', 'Login is required').notEmpty();
  req.checkBody('password', 'Password is required').notEmpty();

  var errors = req.validationErrors();

  if (errors) {
    console.log(errors)
    res.send(errors);
  } else {
    bcrypt.hash(newUser.password, saltRounds, function (err, hash) {
      if (err) {
        console.log(err)
      } else {
        newUser.password = hash;
        var user = new User(newUser);
        user.save()
          .then(function (User) {
            res.send(User);
          })
      }
    });
    req.flash('success_msg', 'You are registered and can now login');

    //res.redirect('/');
  }
});

passport.use(new LocalStrategy(
  function(username, password, done) {
   User.getUserByUsername(username, function(err, user){
    if(err) throw err;
    if(!user){
        return done(null, false, {message: 'Unknown User'});
    }

    User.comparePassword(password, user.password, function(err, isMatch){
        if(err) throw err;
        if(isMatch){
            return done(null, user);
        } else {
            return done(null, false, {message: 'Invalid password'});
        }
    });
   });
  }));



passport.serializeUser( function(user, done) {
  console.log('eheheheheh');
  done(null, user.id);
});

passport.deserializeUser( function(id, done) {
  User.getUserById(id, function(err, user) {
      console.log('eheheheheh');
    done(err, user);
  });
});



router.post('/login',
  passport.authenticate('local', { successRedirect:'hahahha', failureRedirect:'hehehehehe', failureFlash: true }),
  function(req, res) {
      console.log('yyy'),
    res.redirect('dydydydy');
  });

这里可能有什么错误?

0 个答案:

没有答案