Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passport.js Session Confusion

I am learning node and express. I am trying to build a very basic app that will simply let a user log in using json. Then will maintain session until they log out. With asp.net this is a doddle you just set it up in the config and call...

Auth.Login(username,pasword)

When they log out you just do:

Auth.logout()

And if you need to check if they are logged in you simply do:

Auth.IsLoggedIn()

Or code to that effect. Well seems like Passport for node is just not that simple. I spent all night getting this working...

app.post('/authentication/login', function handleLocalAuthentication(req, res, next) {

    passport.authenticate('local', function(err, user, info) {

        // Manually establish the session...
        req.login({username:'[email protected]',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'});
    }
));

So now I have no cookies, no session persisted when I login and then hit the /authentication/isAuthenticated url. I can't even get a breakpoint to stop in the strategy...

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

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

    }
));

Am I looking at the wrong solution for this? Should I be rolling my own auth or something with a basic middleware function?

like image 852
Exitos Avatar asked Jun 24 '14 00:06

Exitos


1 Answers

Check out this tutorial. It's really great and it helped me a lot.

And here's my repo which has implemented passport authentication with users stored in mongodb through mongoose, and hashed passwords. Clone it or just check it out, it should help. https://github.com/thyforhtian/auth_base.

like image 107
thyforhtian Avatar answered Sep 28 '22 05:09

thyforhtian