Node.js 模块之【passport】
2024-10-19 05:51:12
什么是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);
}
});
最新文章
- while(cin.eof)出错 poj
- python的类和对象——进阶篇
- Dreamweaver8 查找和替换窗口不见了解决办法
- Metronic 使用到的开源插件汇总
- using 名称空间指定一个别名
- Catalan数
- Codeforces Round #218 (Div. 2) C. Hamburgers
- Ffmpeg解析media容器过程/ ffmpeg 源代码简单分析 : av_read_frame()
- 使用pch预编译文件
- Why it is good practice to declare loggers private, static, and final?
- html中th 与thead tbody的 使用
- Log4Qt使用(三)在DailyRollingFileAppender类中增加属性mMaxBackupIndex
- spoj 375 QTREE - Query on a tree 树链剖分
- 电脑cmos是什么?和bois的区别?
- 给线程发送消息让它执行不同的处理(自己建立消息循环,非常有意思) good
- Bootstrap相关的网站
- Unity Android路径及注意事项
- PuTsangTo-单撸游戏开发03 碰撞与跳跃瑕疵版
- java中抽象类的定义和使用
- iOS学习——(转)多线程
热门文章
- 学习 27 门编程语言的长处,提升你的 Python 代码水平
- Java 在Word中嵌入多媒体(视频、音频)文件
- HGAME pwn ROP_LEVEL2
- [BUUCTF]PWN——[HarekazeCTF2019]baby_rop2
- Table.RowCount行列计数…Count(Power Query 之 M 语言)
- CSS中上下margin的传递和折叠
- PDF 补丁丁开放源代码
- c++11之获取模板函数的参数个数和函数返回值类型
- 【机器学*】k-*邻算法(kNN) 学*笔记
- 【LeetCode】617. Merge Two Binary Trees 解题报告