我遇到了一个问题,我的index.js文件尝试使用带有expressjs的passportjs调用isAuthenticate()。当我调用函数时,req.isAuthenticated()永远不会被调用,并且总是返回false。 简要说明,我试图对用户进行身份验证,以便他们可以访问他们有权查看的页面。
以下是回购https://github.com/SpotOnSoftwareInc/web-app
的链接注意:这是我从其他人那里继承的代码,很多这些工具对我来说都是新手。
'module.exports = function (passport) {
router.get('/login', login.get);
router.post('/login',passport.authenticate('local-login',{
//session: false,
successRedirect : '/registerprocess',
failureRedirect : '/register',
failureFlash: true
}));
function isLoggedInBusAdmin(req, res, next) {
//if user is authenticated in the session, carry on
if (req.isAuthenticated() && ((req.user[0].role === 'busAdmin') || (req.user[0].role === 'saasAdmin'))){
return next();
}
req.flash("permission", "You do not have permission to access that page");
// if they aren't redirect them to the home page
res.redirect('back');
}'
的lib \ auth.js
`function isAuthenticated(req, res, next) {
console.log('ENTERED IS AUTHENTICATED');
isValidToken(req.db, req.headers.authorization, function (result) {
if (!result) {
console.log('Not Authenticated');
return res.send(403);
} else {
req.mobileToken = result[0];
console.log('Authenticated PASS');
return next();
}
});
}
}`
答案 0 :(得分:0)
在我的app.js文件中找到错误
而不是打电话 employee.find({_ id:id},function(err,user){
我正在打电话 employee.findById({_ id:id},function(err,user){