简体   繁体   中英

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

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?

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM