Ich habe die local
Strategie eingerichtet, aber failureRedirect
scheint nicht richtig zu funktionieren. Wenn ein Verbindungsfehler auftritt (z. B. wenn die URL der Datenbank falsch ist), lautet die Antwort 500 statt auf die angegebene Route.Express Passport failureRedirect funktioniert nicht
Das ist mein Weg Code:
router.route('/login')
.post(passport.authenticate('local', {
failureRedirect: '/'
}), function(req, res){
console.log('user logged in');
res.redirect('../console');
});
Und hier ist meine Implementierung für die local
Strategie:
module.exports = function(){
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(email, password, done){
pg.defaults.ssl = true;
pg.connect(process.env.DATABASE_URL, function(err, client) {
if (err){
console.log('Connection issue when logging in: ' + JSON.stringify(err));
done('Error with database,', null); // this is the problem area!!!
} else {
client
.query(`SELECT * FROM agent WHERE email='${email}'`, function(err, result) {
if(err || result.rows.length === 0) {
console.log('Query issue when loggin in: '+ JSON.stringify(err));
done(null, false);
} else {
var user = result;
console.log('ready to log user in');
done(null, user);
}
});
}
});
}
));
};
Ich dachte, vielleicht meine Verwendung von done()
Callback-Funktion falsch ist, aber ich folgte die Dokumentation. Danke für Ihre Hilfe.
versuchen 'fertig (err)'? –
danke, aber funktioniert nicht wie erwartet: es druckt den Fehler auf der Seite statt Umleiten an wie in 'failureRedirect' angegeben – ocram
cool, jetzt, was ist der Fehler? –