Node.js 模块之【passport】


什么是passport

passport是Nodejs的一个中间键,用于用户名和密码的验证登陆。在项目中我用它来验证后台用户名和密码,但passport更多用在第三方登录,功能强大。

安装与配置

本项目中使用了passport以及passport-local

npm install passport --save npm install passport-local --save

中间件的配置

// 初始化调用passport
app.use(passport.initialize()); app.use(passport.session());

local本地验证

var passport = require('passport'); var Strategy = require('passport-local').Strategy; var account = require('./account'); //创建本地策略 passport.use('local', new Strategy({ // 需要验证的字段名称 username: 'username', password: 'password' }, // 回调函数 function(username, password, cb) { //验证不通过 if(username != account.username) { return cb(null, false, {message: '用户名错误'}); } if(password != account.password) { return cb(null, false, {message: '密码错误'}); } //验证通过,返回用户信息 return cb(null, account); } ));


序列化与反序列化

//序列化,用户提交后会把id作为唯一标识储存在session中,同时存储在用户的cookie中 passport.serializeUser(function(account, cb) { console.log('in serializeUser'); return cb(null, account.id); }); //验证用户是否登录时需要用到这个,session根据id取回用户的登录信息并存储在req.user中 passport.deserializeUser(function(id, cb) { console.log('in deserializeUser'); if(id == account.id) { return cb(null, account); } else { return cb(err); } });
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM