Passport.js会话混乱

我正在学习节点和expression。 我试图build立一个非常基本的应用程序,只是让用户使用jsonlogin。 然后将保持会话,直到他们注销。 与asp.net这是一个轻而易举的事,你只需在configuration中设置和调用…

Auth.Login(username,pasword) 

当他们注销你只是做:

 Auth.logout() 

如果你需要检查他们是否login,你只需要做:

 Auth.IsLoggedIn() 

或者代码来达到这个效果。 好像Passport for node就不那么简单了。 我花了整夜的工作

 app.post('/authentication/login', function handleLocalAuthentication(req, res, next) { passport.authenticate('local', function(err, user, info) { // Manually establish the session... req.login({username:'me@me.com',password:'password'}, function(err) { if (err) return next(err); return res.json({ message: 'user authenticated' }); }); })(req, res, next); }); app.get('/authentication/isauthenticated',function(req,res){ console.log(req.isAuthenticated()); }) passport.use(new LocalStrategy( function(username, password, done) { return done(null, {username:'ss',password:'sffds'}); } )); 

所以,现在我没有cookies,login时没有会话保持,然后点击/authentication/isAuthenticated url。 我甚至不能在战略中得到一个断点

 passport.use(new LocalStrategy( function(username, password, done) { console.log('ggg'); return done(null, {username:'ss',password:'sffds'}); } )); 

我在看这个错误的解决scheme吗? 我应该使用基本的中间件function来滚动自己的authentication吗?

看看这个教程 。 这真的很棒,它帮了我很多。

这里是我的回购,已经通过mongoose存储在MongoDB中的用户实现了护照authentication,并散列密码。 克隆它或只是检查出来,它应该帮助。 https://github.com/thyforhtian/auth_base