Node.js 模块之【passport】

什么是passport

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

安装与配置

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



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); } });
相关文章
相关标签/搜索