javascript - Node passport-local strategy always fails -


i'm using node.js passport module build authentication process, , i'm unable figure out why verification fails, when return success every time verification callback. keep example simple, i'm using passport-local strategy no persistent storage:

var passport = require('passport'); var localstrategy = require('passport-local').strategy; var express = require('express'); var server = express();  passport.serializeuser(function (user, done) {   done(null, user); });  passport.deserializeuser(function (id, done) {   done(null, id); });  passport.use(new localstrategy(   function (username, password, done) {     // perform lookup , verification here.     // instead return valid user object every time.     var user = { username: username };     return done(null, user);   } ));  server.post('/login', passport.authenticate('local', { failureredirect: '/failure' }), function (req, res) {   res.send('access granted'); });  var port = process.env.port || 3000; server.listen(port,  function() {   console.log('listening on port ' + port); }); 

similar questions have been solved adding placeholder user serialization/deserialization methods, i've got in place.

here's curl call hit above username , password:

curl -x "post" "http://127.0.0.1:3000/login" \   --data-urlencode "username=alice" \   --data-urlencode "password=supersecret" 

when perform post, response contains http 302 failure redirect /failure every time, though i'm returning null (no error), , dummy user object in localstrategy callback. overlooking?

i overlooking 2 things:

  • there no call passport.initialize() middleware
  • i wasn't parsing request bodies because express doesn't include out of box

now require block @ top includes both of missing items, , returns 200 ok when posting /login:

var passport = require('passport'); var localstrategy = require('passport-local').strategy; var express = require('express'); var bodyparser = require('body-parser'); var server = express(); server.use(passport.initialize()); //server.use(passport.session()); -- persistent login sessions server.use(bodyparser.urlencoded({ extended: true })) 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -