使用passport.js注册用户或手动创建用户
Use passport.js for register users or manually create them?
看看互联网,很多人都在使用本地策略在Passport中使用"注册"方法。但是,与手动在数据库中创建记录相比,这有什么优势吗?
我的意思是,如果我们使用护照策略来做这件事,我们可以:
passport.use('local-signup', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
}, (req, email, password, done) => {
User.findOne({
email: email
})
.then(user => {
if (user) {
return done(null, false);
} else {
User.create(req.body)
.then(userCreated => {
return done(null, userCreated);
})
.catch(err => {
return done(err)
});
}
})
.catch(err => {
return done(err)
});
}
));
但是这真的需要吗?或者我们可以这样创建用户?(使用Bookshelf.js):
this.model.findOne({
email: email
})
.then(user => {
if (user) {
res.status(403).json({
message: 'Email not available.'
});
} else {
User.create(req.body)
.then(userCreated => {
res.status(201).json(userCreated);
})
.catch(err => {
next(err);
});
}
})
.catch(err => {
next(err);
});
}
首先,让我们明确定义什么是Passport.js:
"Passport是Node的认证中间件" (http://www.passportjs.org/docs/)
你可以创建这样的用户,然后用你的on代码处理其余的登录过程。
但是当你的认证规则变得更复杂时(它们会变得更复杂),Passport.js就派上了用场。
使用它,您不需要浪费时间创建代码来处理访问限制,API暴露等。js为您处理所有这些。因此,您可以专注于应用程序的其他实现细节。
相关文章:
- 如何在节点中为用户创建某种警报
- 如何为在客户端检查其密码的用户创建登录页面
- 如何防止用户创建重复ID
- 如何在完整日历中筛选出用户创建的事件
- 使用java和html基于当前用户创建重定向链接
- 在jquery或jquery移动中,如何将用户创建的链接传递到用户创建的按钮?我所说的用户是指最终用户,而不是我
- 用户创建的应用程序的安全性
- 为多个用户创建自动低分辨率和高分辨率pdf,png与inDesign
- 如何为用户创建唯一的网址
- 如何在我的网页上为iPhone用户创建一个注释,说明有一个应用程序
- 当用户创建新帖子时,张贴到墙上时出错
- 为不同的用户创建一个常规页面
- 如何为不同的用户创建Opencart模块
- Express js会话——仅为登录用户创建
- 根据用户创建文本字段's在JavaScript函数中的输入
- 从用户创建的选择字段中获取所有选定项目的值
- 在数据库中保存用户创建的javascript是否安全
- 如何为用户创建带有构建选项的流星JS包
- 如何在Meteor中验证服务器上的用户创建
- 如何获取用户文本输入用户创建输入的值,jQuery