- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基本用法.pdf
基本⽤法
passport⽤的⽐较多的有local本地验证和OAuth验证,这⾥讲⼀下两者的使⽤。
你也可以看看张丹写的这两篇,Express结 Passport实现登陆认证和Passport实现社交
⽹络OAuth登陆,⾥⾯的⽰例覆盖了基本的⽤法,本⽂也参考了其中的⼀些例⼦。
local本地验证
配置策略
usernameField
验证回调
密码验证
session序列化与反序列化
Authenticate验证
HTTP request操作
完整⽰例
OAuth验证
OAuth验证流程
OAuth 1.0
OAuth2.0
使⽤passport-x插件
OAuth验证的逻辑
local本地验证
本地验证默认使⽤⽤户名和密码来进⾏验证。
配置策略
在做验证之前,⾸先需要对策略进⾏配置,官⽅的⽰例如下:
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done)
User.findOne( username: username }, function(err, user)
if (err) return done(err); }
if (!user)
return done(null, false, message: '⽤户名不存在.' });
}
if (!user.validPassword(password))
return done(null, false, message: '密码不匹配.' });
}
return done(null, user);
});
}
));
其中的User.findOne()是Mon oDB风格的语法,意思是从数据库的User集 中查
询⼀条数据,第⼀个参数是查询条件,后⾯是callback ,⼀般在callback 中进⾏后续操
作。
这⾥的逻辑很简单,依次检查username、password,如果出错则返回错误信息,
如果通过则返回done(null,user)。
usernameField
前⾯说过passport默认使⽤⽤户名和密码来验证,但实际上也有很多需要⽤邮箱来验证
的,那么如何实现呢?
passport在策略配置⾥提供了options参数,⽤来设置你要验证的字段名称,即
usernameField ,使⽤⽅法如下:
passport.use(new LocalStrategy(
usernameField: 'email',
passwordField: 'passwd'
},
function(username, password, done)
// ...
}
));
注意,这⾥的字段名称应该是页⾯表单提交的名称,即req .body .xxx ,⽽不是user数据
库中的字段名称。
将options作为LocalStrate y第⼀个参数传⼊即可。
验证回调
passport本⾝不处理验证,验证⽅法在策略配置的回调函数⾥由⽤户⾃⾏设置,它又称
为验证回调。验证回调需要返回验证结果,这是由done()来完成的。
在passport .use()⾥⾯,done()有三种⽤法:
当发⽣系统级异常时,返回done(err) ,这⾥是数据库查询出错,⼀般⽤
next(err) ,但这⾥⽤done(err) ,两者的效果相同,都是返回error信息;
当验证不通过时,返回done(null , false , messa e) ,这⾥的messa e是可选的,可
1亿VIP精品文档
相关文档
最近下载
- 安徽省皖中联盟2023-2024学年高二上学期期末联考历史试题 Word版含解析.docx
- 矩形钢筋混凝土清水池国标图集96S823~96S833 96S836~96S838w.pdf
- 国家开放大学2021春季学期本科非英语类专业学士学位英语试题答案.docx
- 2023年广东省湛江市中考数学试卷真题(含答案详解).docx
- 上海市华育中学九年级中考英语语法词汇选择易错题精选40道之6含答案.docx VIP
- 妇幼保健考试资料.docx
- 加气站各项工作操作流程.doc
- 电气专业防非停措施2.doc
- 钢琴谱:唱支山歌给党听正谱子五线谱乐谱曲谱歌谱高清.pdf VIP
- 超星答案《共 产党宣言》导读2020超星学习通免费答案题库分享(完整版).docx VIP
文档评论(0)