Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express passport.authenticate成功重定向条件_Express_Passport.js_Passport Local - Fatal编程技术网

Express passport.authenticate成功重定向条件

Express passport.authenticate成功重定向条件,express,passport.js,passport-local,Express,Passport.js,Passport Local,在我的app.js中,我有: router.post('/login', passport.authenticate('local', { successRedirect: '/admin/users', failureRedirect: '/login' }), function (req, res) { }); 我的用户对象如下所示: { _id: 586afad4a4ff884d28b6ca97, firstName: 'Joseph', ... isAdmin: f

在我的app.js中,我有:

router.post('/login', passport.authenticate('local', {
  successRedirect: '/admin/users',
  failureRedirect: '/login'
}), function (req, res) {
});
我的用户对象如下所示:

{ _id: 586afad4a4ff884d28b6ca97,
  firstName: 'Joseph',
  ...
  isAdmin: false }
我想做的是:

router.post('/login', passport.authenticate('local', {
  successRedirect: {
    if(req.body.user.isAdmin === true) {
      res.redirect('/admin/users')
    }
    res.redirect('/dashboard');
  },
  failureRedirect: '/login'
}), function (req, res) {
});

但我似乎做不到。检查用户是否是管理员或使用passport.authenticate登录帖子的最简单示例是什么?我能够找到它。passport.authenticate中的可选对象使我困惑。所以我所做的是:

router.post(
  '/login',
  passport.authenticate('local', {
    failureRedirect: '/login'
  }), (req, res) => {
    if (req.user.isAdmin === true) {
      res.redirect('/admin/gifts?filter=review');
    }
    if (req.user.isAdmin === false) {
      res.redirect('/dashboard/received');
    }
  });