1
看着互聯網,很多人都在使用本地策略在Passport內部執行「註冊」方法。但是,在手動創建數據庫中的記錄之間有這種優勢嗎?使用passport.js註冊用戶或手動創建它們?
我想是說,如果我們使用的護照這樣做的策略,我們可以這樣做:
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);
});
}
通常passportjs用於身份驗證目的,如果您想進一步創建用戶(如果他沒有註冊),則取決於您的應用程序。 – bpinhosilva