概要
之所以是passport-local基于connect的验证流程解析,是因为个人实例时没有用到express框架,但用到了TJ大神的node-connect。 个人的MVC框架是基于自然映射,也用到了connect去引入中间件,所以passport-local基于connect的  原理与流程在此大致梳理一下。
passport-local代码及运转流程解析
首先定义local验证的策略
本地验证需要二个字段usernameField, passwordField,其值为你想定义的验证字段。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   | var CB = function(name, pwd, done) {                  process.nextTick(function () {             user.findOne({                 name: name             }, function(error, user){                 if(!user){                     return done(null, false, { message: '用户名或邮箱 ' + name + ' 不存在'});                 }                 if(user.password !== pwd){                     return done(null, false, { message: '密码不匹配' });                 }else{                     return done(null, user, info);                 }             });         });     }; passport.use(new LocalStrategy({                                  usernameField: 'name',                  passwordField: 'pwd'             }, CB));
  |