Passport local returns error 400 bad request with Angular
Bad Request was thrown by passport for missing access on username and password.
It is checking body and URL query for fields username
and password
. If either is falsy the request is rejected with status 400.
On creating your LocalStrategy you may pass set of options in additional argument to constructor choosing differently named fields using options usernameField
and/or passwordField
. In your particular case this would look like this:
passport.use(new LocalStrategy( {usernameField:"user-email", passwordField:"user-password"}, function(username, password, done) { return done(null, false, {message:'Unable to login'}) }));
This error also comes from trying to access the request payload without using body-parser
Use -
var parser = require('body-parser');var urlencodedParser = parser.urlencoded({extended : false}); app.post("/authenticate", urlencodedParser, passport.authenticate('local'), function (request, response) { response.redirect('/'); });