【问题标题】:Trying to use node.js and passport, but authentication page just times out尝试使用 node.js 和护照,但身份验证页面超时
【发布时间】:2015-01-08 09:57:46
【问题描述】:

我正在使用护照进行本地身份验证。现在很简单,只是一个简单的登录表单和登录路径。它在我的 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"});
});

注意——现在的反序列化只是一个返回用户对象的骗子,最终它会是一个回调等等:)。

【问题讨论】:

    标签: node.js express passport.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-22
      • 2013-02-23
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      相关资源
      最近更新 更多