Hi,
Derzeit antwortet der Passport im Fehlerfall entweder mit 401 oder leitet um, wenn der Parameter "failureRedirect" gesetzt ist. Gibt es eine Möglichkeit, eine benutzerdefinierte Antwort zu erstellen? ZB JSON auf 401-Antwort senden?
Ich muss bei regulären Anfragen mit Weiterleitung und bei XHR-Anfragen mit etwas anderem antworten, da die Weiterleitung aufgrund von CORS in XHR nicht möglich ist
Ich versuche so etwas, aber es funktioniert nicht
app.all('*', function(req, res, next) {
return passport.authenticate('bearer', {
session: false
}, function(err, user, info) {
if (err) {
return next(err);
}
if (!user) {
return res.status(401).send({<some JSON response here>});
}
return next();
});
});
Egal, habe die Lösung gefunden:
app.all('*', function(req, res, next) {
return passport.authenticate('bearer', {
session: false
}, function(err, user, info) {
if (err) {
return next(err);
}
if (!user) {
return res.status(401).send(my_json_object);
}
req.user = user;
return next();
})(req, res, next);
});
Danke @carera , das gleiche habe ich auch gesucht.
Was ist, wenn ich diese Middleware wiederverwenden möchte?
Probieren Sie Standardtaktiken zur Wiederverwendung von Code aus: Benennen Sie Ihre Funktion, registrieren Sie sie mit ihrem Namen und speichern Sie sie möglicherweise in einem Modul.
Hilfreichster Kommentar
Egal, habe die Lösung gefunden: