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