Passport.js会话混乱

时间:2014-06-24 00:09:42

标签: node.js express passport.js

我正在学习节点和表达。我正在尝试构建一个非常基本的应用程序,只需让用户使用json登录。然后将保持会话直到他们退出。使用asp.net这是一个轻而易举的事情,你只需在配置中设置并调用...

Auth.Login(username,pasword)

当他们退出时你只需:

Auth.logout()

如果您需要检查他们是否已登录,您只需执行以下操作:

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'});
    }
));

所以现在我没有cookie,当我登录然后点击/authentication/isAuthenticated网址时没有会话持续存在。我甚至无法在战略中找到一个断点......

passport.use(new LocalStrategy(
    function(username, password, done) {

        console.log('ggg');
        return done(null, {username:'ss',password:'sffds'});

    }
));

我是否在寻找错误的解决方案?我应该滚动自己的身份验证还是具有基本中间件功能的东西?

1 个答案:

答案 0 :(得分:3)

结帐this tutorial。它非常棒,对我帮助很大。

这是我的回购,它通过mongoose对存储在mongodb中的用户实施了护照验证,并对密码进行了哈希处理。克隆它或只是检查它,它应该有所帮助。 https://github.com/thyforhtian/auth_base