本地护照身份验证策略提供临时标头

时间:2017-09-09 10:34:00

标签: javascript node.js express passport.js

从我的前端,我发送一个带有用户名和密码对象的POST请求

const login = data => (
  axios.post('http://localhost:3000/v1/user/login', data)
    .then(response => response.data)
    .catch((err) => {
      throw err;
    })
);

在express中,我在/routes/v1/user.route.js中添加了/ login路由

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;

和登录控制器方法:

exports.login = (req, res, next) => {
  passport.authenticate('local', {
    successRedirect: '/',
    failureRedirect: '/404',
    failureFlash: true });
};

在我的服务器日志中,我看到:

POST /v1/user/login - - ms - -
OPTIONS /v1/user/login 204 1.886 ms - 0

但是没有任何反应。

1 个答案:

答案 0 :(得分:1)

passport.authenticate()是一个中间件(或者更确切地说,它是一个返回中间件的函数),但是你将它用作常规函数(导致停止的请求,因为没有响应被发送回)。

试试这个:

exports.login = passport.authenticate('local', {
    successRedirect: '/',
    failureRedirect: '/404',
    failureFlash: true
});