Nodejs:Passport验证用户名密码(不完全)

来源:互联网 发布:周灏 数据财经新浪网 编辑:程序博客网 时间:2024/06/05 20:21

参考

passport.js学习笔记


什么是passport

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


安装与配置

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

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

中间件的配置

// 初始化调用passportapp.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);    }});

0 0
原创粉丝点击