运行一个函数而不是重定向到其他页面(passportjs)

时间:2018-07-14 12:28:04

标签: node.js passport.js

例如,我想知道在护照认证失败或成功时如何运行功能

.post('/login', (req, res, next) => {
    passport.authenticate('local', {
      successRedirect: '/',
      failureRedirect: '/users/login', //I would like to run a function here instead of redirecting
      failureFlash: false
    })(req, res, next);
  })

1 个答案:

答案 0 :(得分:1)

您需要传递一个函数而不是config对象。

但是请确保您正确处理了请求。

即:

const login = function (req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err || !user) {
            console.log(err);

            return res.status(401).json({
                message: 'Something is not right',
                user: user
            });
        }
        req.login(user, {session: false}, function(err) {
            if (err) {
                res.send(err);
            }

            return res.json({user});
        });
    })(req, res);
};