检查用户是否已登录passport.js

时间:2018-05-17 10:40:12

标签: javascript node.js express passport.js

我使用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。如何解决它。感谢

1 个答案:

答案 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);