Passport-http-bearer: Individuelle Handhabung der Reaktion auf Fehler

Erstellt am 1. Juli 2015  ·  4Kommentare  ·  Quelle: jaredhanson/passport-http-bearer

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();
    });
  });

Hilfreichster Kommentar

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);
});

Alle 4 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen