Ich habe eine Weile gesucht und kann keine definitive Dokumentationsquelle finden. Wenn ich nach diesen suche, sind die ersten Google-Ergebnisse StackOverflow.
Gibt es ähnliche Middleware-Funktionen?
Obwohl nicht explizit dokumentiert, können Sie im Passport-Code unter https://github.com/jaredhanson/passport) sehen, wo die Flags isAuthenticated
und isUnauthenticated
gesetzt sind /blob/a892b9dc54dce34b7170ad5d73d8ccfba87f4fcf/lib/passport/http/request.js#L74 .
ensureAuthenticated
ist nicht offiziell, kann aber folgendermaßen implementiert werden:
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated())
return next();
else
// Return error content: res.jsonp(...) or redirect: res.redirect('/login')
}
app.get('/account', ensureAuthenticated, function(req, res) {
// Do something with user via req.user
});
der Grund, warum false zurückgegeben wird, liegt hauptsächlich darin, dass es unterhalb der Routendefinition deklariert wird. Ich mache es in einer anderen Datei, also benutze ich es so
//auth check
function auth(req,res,next){
if(req.isAuthenticated()){
next();
}
else{
res.redirect("/fail");}
}
//routes
require("./routes/myroute")(app,auth);