javascript - 检查用户是否登录passport.js
问题描述
我使用 passport.js 来验证用户身份。我有两个功能来检查用户是否登录。第一个功能:
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{
}
该函数只返回函数定义而不是真/假。如何修复它。谢谢
解决方案
您isLoggedIn
在内部条件中用作 ExpressJS 中间件,isLoggedInCheck
这就是为什么您需要调用函数(helper.isLoggedInCheck(req, res)
内部 if 条件而定义内部get
函数
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);