Passportjs没有打电话是isAuthenticate

时间:2016-02-26 06:47:02

标签: javascript node.js express passport.js

我遇到了一个问题,我的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();
        }

    });
}
}`

1 个答案:

答案 0 :(得分:0)

在我的app.js文件中找到错误

而不是打电话 employee.find({_ id:id},function(err,user){

我正在打电话 employee.findById({_ id:id},function(err,user){