When I POST
to the endpoint that calls passport.authenticate
, I get no response, nor does the server proceed to the strategy defined in passport.use
. On Heroku, I get error H12 (timeout), and locally my browser responds with "No data received."
I made a checkin to GitHub with the code that has this problem.
This isn't a database problem – a console.log
is called before .findOne
, but that message is never logged. It just seems to stop at passport.authenticate
. Why?
What's going on here? Is there something else I can do to diagnose?
Turns out passport.authenticate(…)
returns a middleware-style function.
I broke the response chain by calling it the wrong way. In my site.js module, exports.login
should be set to the result of passport.authenticate(…)
, it should not call it, i.e.:
exports.login = passport.authenticate('local', {
successRedirect: '/result',
failureRedirect: '/login'
});