在server.js中:var User = mongoose.model('User'); passport.use(new LocalStrategy(function(username,password,done){User.findOne({username:username}) . exec(function(err,user){
如果(用户){
return done(null,user);
} else {
return done(null,false);
}
});
}
));
passport.serializeUser(功能(用户,完成){
如果(用户){
有(空,user.id);
}};
passport.deserializeUser(function(id,done){User.findOne({ id:id}) . exec(function(err,user){
如果(用户){
return done(null,user);
} else {
return done(null,false);
}
}); });
express.js:app.use(session({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(“在路由中点击/登录”);
var auth = passport.authenticate('local',function(err,user){
console.log(“调用auth函数”);
console.log(“用户数据:”用户);
if(错误){return next(err);}
如果(!用户){
resp.send({success:false});
}
req.logIn(user,function(err){
if(错误){return next(err);}
resp.send({success:true,user:user});
})
});
AUTH(REQ,RESP,下一个);
});
在控制器中:angular.module('app') . controller('navbarCtrl',function($ scope,$ http){$ scope.signIn = function(username,password){
console.log(“我正在尝试登录网站”);
$ http.post( '/登录',{用户名:用户名}) . 然后(功能(响应){
如果(response.data.success){
console.log('登录webiste buddy !!!');
}
其他{
console.log(“无法登录DUDE !!!!”);
}
});
}
});
终端输出:路由中的命中/登录呼叫调用auth功能用户数据:false(即使我尝试使用DB中的现有用户数据,用户数据也始终为假)POST / login 200 29.125 ms - 17