我使用passport.js来验证用户身份。我有2个功能来检查用户是否登录。 第一个功能:
isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
else {
res.redirect('/');
}
}
第二功能:
isLoggedInCheck(req, res) {
if (req.isAuthenticated()) {
return true;
}
else {
return false;
}
}
我在名为Helper的类中使用了这两个函数。 当我使用第一个函数(我在路由函数中将其作为中间件传递)时,它可以工作:
var Helper = require('../helpers/helper');
var helper = new Helper();
router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);
但是当我想使用第二个功能时:
if (helper.isLoggedInCheck) {
//code
}
else{
}
该函数只返回函数定义而不是true / false。如何解决它。感谢
答案 0 :(得分:0)
你正在使用isLoggedIn
作为ExpressJS中间件而isLoggedInCheck
内部条件,这就是为什么你需要在helper.isLoggedInCheck(req, res)
函数内定义内部调用函数get
p>
if (helper.isLoggedInCheck(req, res)) {
//code
}
else{
}
,第一个是
router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);
或(不推荐,仅显示示例)
router.get('/', (req, res, next) => {
helper.isLoggedIn(req, res, next)
}, admin.melihat_daftar_venue);