概要
之所以是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));
|