Mit Blick auf das Internet machen viele Leute die "Signup" -Methoden in Passport, mit lokalen Strategien. Hat dies jedoch einen Vorteil zwischen der manuellen Erstellung des Datensatzes in der Datenbank?Verwenden Sie pass.js für Benutzer registrieren oder manuell erstellen?
I bedeuten wollen, wenn wir eine Strategie des Reisepasses, dies zu tun verwenden, können wir tun:
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)
});
}
));
Aber ist dies wirklich notwendig? Oder können wir unseren Benutzer so erstellen? (Mit 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);
});
}
In der Regel wird passpjs für die Authentifizierung verwendet, wenn Sie weiter gehen und einen Benutzer erstellen möchten, wenn er nicht registriert ist, liegt es an Ihrer Anwendung. – bpinhosilva