尝试使用node.js和passport,但身份验证页面只是超时

时间:2013-11-30 22:47:19

标签: node.js express passport.js

我正在使用护照进行本地身份验证。它现在非常简单,只需一个简单的登录表单和登录路线。它在我的Mac上运行时效果很好,但是当我将它上传到机架空间服务器并尝试时,我尝试将表单提交到/ login时会出现超时。

相关代码(如果我需要添加更多内容,请告诉我):

//Passport SETUP 
passport.serializeUser(function (user, done) {
    console.log("serialized");
    done(null, user.username);
});

passport.deserializeUser(function (username, done) {
    console.log("deserialized");
    user = users.getUserByUsername(username);
    done(null, user);
});

passport.use(new LocalStrategy(
  function (username, password, done) {
    users.loginUser(username, password, function(err, user) {
        if (err) { return done(err); }
        if (user) {
            return done(null, user);
        } else {
            return done(null, false, { message: 'Incorrect Login.'});
        }
    });
  }
));

//middleware
var loginRequired = function(req, res, next){
  if (req.isAuthenticated()) { return next(); }
  res.redirect('/');
};

//using passport
app.post('/login',
    passport.authenticate('local', { successRedirect: '/game',
                                    failureRedirect: '/',
                                    failureFlash: true })
);

//page that i want to eventually get to
app.get('/game', loginRequired, function(req, res){
    res.render('game', {title:"Game Page"});
});

注意 - 现在反序列化只是一个返回用户对象的骗子,最终它将是一个回调而且所有这些:)。

1 个答案:

答案 0 :(得分:0)

:(在扔进console.logs之后,我发现它是mysql。用户不是在服务器上创建的。不知道为什么mysql-simple-pool没有错误输出,但它没有。