javascript – 用于在Node JS中进行身份验证的Passport
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 用于在Node JS中进行身份验证的Passport,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1481字,纯文字阅读大概需要3分钟。
内容图文
我正在考虑使用Passport Library(http://passportjs.org/)在Node项目中进行身份验证.
我对以下护照会话功能感到困惑:
passport.serializeUser(function( user, done ) {
done( null, user.id );
});
passport.deserializeUser(function( id, done ) {
user.get( id, function ( err, user ) {
done( err, user );
});
});
我想知道:
1)是否需要对每个需要进行身份验证的请求进行调用?或者他们只是在第一次创建会话时调用一次?
2)如何从脚本的其他部分访问“用户”中的信息?
3)对于需要进行身份验证的请求,我在哪里添加任何其他逻辑.例如,检查是否尚未达到允许的用户空闲时间值.
在此先感谢您的帮助
解决方法:
1)在为用户创建会话时(在验证成功时)调用serializeUser.这用于在Express会话中存储关于用户的某种标识信息(如唯一的用户标识).
为每个请求调用deserializeUser,并从会话中获取该段识别信息,以某种方式通过数据库查询将其转换回完整的用户记录,但这真的取决于您:而不仅仅是存储用户ID您还可以将整个用户记录存储在会话中,但这取决于用户记录的类型和您正在使用的会话存储(如果可能)(例如,使用express.cookieSession会限制您可以存储的数据量)一个会议).
这是存储整个用户记录的样子:
passport.serializeUser(function(user, done) {
// Here, 'user' is the result of the function called by 'new LocalStrategy()'; when
// you call done() below, that result will be stored in the session.
done(null, user);
});
passport.deserializeUser(function(user, done) {
// Here, 'user' is what's stored in the session by serializeUser()
done(null, user);
});
2)Passport填充req.user,您可以在路由或中间件中使用它.
3)你可以制作一个中间件来实现这样的检查. This可能是一个很好的起点.
内容总结
以上是互联网集市为您收集整理的javascript – 用于在Node JS中进行身份验证的Passport全部内容,希望文章能够帮你解决javascript – 用于在Node JS中进行身份验证的Passport所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。