在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