使用 passport.js 注册用户还是手动创建用户?
Use passport.js for register users or manually create them?
在互联网上,很多人都在使用本地策略在 Passport 中执行 "Signup" 方法。但是,这与手动在数据库中创建记录相比有什么优势吗?
我想说的是,如果我们使用 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 is authentication middleware for Node" (http://www.passportjs.org/docs/)
您可以像这样创建用户,然后使用您的代码处理其余的登录过程。
但是,当您的身份验证规则变得更加复杂(而且它们会)时,Passport.js 就变得很方便了。
使用它,您无需浪费时间创建代码来处理访问限制、API 曝光等。Passports.js 会为您处理所有这些。因此,您可以专注于应用程序的其他实现细节。
在互联网上,很多人都在使用本地策略在 Passport 中执行 "Signup" 方法。但是,这与手动在数据库中创建记录相比有什么优势吗?
我想说的是,如果我们使用 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 is authentication middleware for Node" (http://www.passportjs.org/docs/)
您可以像这样创建用户,然后使用您的代码处理其余的登录过程。
但是,当您的身份验证规则变得更加复杂(而且它们会)时,Passport.js 就变得很方便了。
使用它,您无需浪费时间创建代码来处理访问限制、API 曝光等。Passports.js 会为您处理所有这些。因此,您可以专注于应用程序的其他实现细节。