在nodejs中使用护照进行身份验证时未获得预期结果

时间:2016-06-08 13:26:39

标签: javascript node.js passport-local

  

在server.js中:

     

var User = mongoose.model(' User'); passport.use(新的LocalStrategy(        功能(用户名,密码,完成){

  User.findOne({username:username}).exec(function(err,user){

      if(user){
          return done(null,user);
      } else{

          return done(null,false);
      }

  });   
 }
 ));
  passport.serializeUser(function(user,done){

if(user){
    done(null,user._id);
} });
     

passport.deserializeUser(功能(ID,完成){

User.findOne({_id : id}).exec(function(err,user){

    if(user){
          return done(null,user);
      } else{

          return done(null,false);
      }
}); });
     

express.js:

     

app.use(会话({secret:' multivision unicorns',resave:false,   saveUninitialized:false})); app.use(passport.initialize());   app.use(passport.session());

     

routes.js:

     

app.post(' / login',function(req,resp,next){

console.log("hitting /login call in routes");

var auth = passport.authenticate('local', function(err,user){


    console.log("Calling auth function");
    console.log("User data : " + user);

    if(err) {return next(err);}

    if(!user){
        resp.send({success : false});
    }

    req.logIn(user, function(err){
        if(err) { return next(err);}

        resp.send({success:true, user:user});
    })
});

auth(req,resp,next);
 });
     控制器中的

     

angular.module(' app')。控制器(' navbarCtrl',功能($ scope,$ http){

$scope.signIn = function(username,password){

    console.log("I am trying to login to website");

    $http.post('/login',{username:username}).then(function(response){

       if(response.data.success){
           console.log('logged in to webiste buddy!!!');
       } 
       else{
           console.log("Unable to login DUDE!!!!");
       }
    });
}
     });
     

终端输出:

     
    

在路线中点击/登录呼叫调用auth功能用户数据:false (即使我尝试使用现有功能,用户数据也始终为false     DB中的用户数据)     POST /登录200 29.125 ms - 17

  

0 个答案:

没有答案