【发布时间】: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