Reputation: 14165
From my frontend, I'm sending a POST request with a username and password object
const login = data => (
axios.post('http://localhost:3000/v1/user/login', data)
.then(response => response.data)
.catch((err) => {
throw err;
})
);
In express, I added /login route inside /routes/v1/user.route.js
const controller = require('../../controllers/user.controller');
const router = express.Router();
router.route('/register')
.post(controller.register);
router.route('/login')
.post(controller.login);
module.exports = router;
and the login controller method:
exports.login = (req, res, next) => {
passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/404',
failureFlash: true });
};
and in my server log I see:
POST /v1/user/login - - ms - -
OPTIONS /v1/user/login 204 1.886 ms - 0
But then nothing happens.
Upvotes: 0
Views: 218
Reputation: 203286
passport.authenticate()
is a middleware (or rather, it's a function that returns a middleware), but you're using it as a regular function (resulting in a stalled request, because there isn't a response being sent back).
Try this:
exports.login = passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/404',
failureFlash: true
});
Upvotes: 1