Ich versuche, einen Benutzer sofort nach dem Abschicken eines POST auf dem /register
Formular zu authentifizieren und einzuloggen. Im Idealfall möchte ich, dass Benutzer sich registrieren können und dann sofort zum Dashboard weitergeleitet werden, ohne ihre Anmeldeinformationen erneut eingeben zu müssen.Passport-Authentifizierung sofort nach Neu-Benutzerregistrierung
Mein Server verwendet Passport 0.1.17 mit der lokalen Strategie, die für die Verwendung der E-Mail-Adresse und des Kennworts für die Anmeldung konfiguriert ist. Der aktuelle Code ist:
app.post('/register', function(req, res) {
// attach POST to new User variable
var registerUser = new User({ email: req.body.email, password: req.body.password, name: req.body.name });
// save registerUser Mongo
registerUser.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('registerUser: ' + registerUser.email + " saved.");
}
});
// here is where I am trying to authenticate and then redirect
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
res.redirect('/dashboard');
});
Wie würde ich diesen Code Refactoring den neuen Benutzer zu speichern, dann authentifizieren und schließlich auf dem Armaturenbrett umleiten?
Vielen Dank im Voraus!
Verwenden Sie 'req.logIn' Methode zur Authentifizierung direkt nach der Registrierung. – moka
Danke für die Referenzierung von 'req.logIn', was mir vorher nicht bewusst war. Können Sie spezifischeren Code bereitstellen? Ich habe folgendes nach dem letzten Kommentar in der obigen Frage versucht, aber es hat nicht funktioniert: 'req.login (registerUser, function (err) { if (err) {zurück next (err);} return res.redirect ('/ dashboard'); }); ' – surfearth
Sie müssen Details angeben, die zum Deserialisieren des Benutzers verwendet werden, normalerweise ist dies die ID eines Benutzers, der in einer Sitzung gespeichert ist. – moka