2017-01-05 62 views
2

在我app.js我:passport.authenticate successRedirect條件

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進行登錄的最簡單的例子。認證

回答

3

我能弄明白。 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'); 
    } 
    }); 
相關問題