app.all( * ,function(req,res,next){
if(req.isAuthenticated()){
next();
}else{
next(new Error(401)); // 401 Not Authorized
}
});
// NOTE: depending on your version of express,
// you may need to use app.error here, rather
// than app.use.
app.use(function(err,req,res,next){
// Just basic, should be filled out to next()
// or respond on all possible code paths
if(err instanceof Error){
if(err.message === 401 ){
res.render( error401 );
}
}
});
如果你界定了“<>all航线,然后路线上要求认证,而后路线(如主页、标识等),则该路线只应影响所需要的路线。 或者,你可以使用一个登记册而不是<代码>,* ,其中将包括需要认证的一条路子或路标清单。
另一种选择是建立一种功能,在每一条路线中包含必要的内容:
function IsAuthenticated(req,res,next){
if(req.isAuthenticated()){
next();
}else{
next(new Error(401));
}
}
app.get( /login ,function(req,res,next){
res.render( login );
});
app.get( /dashboard ,IsAuthenticated,function(req,res,next){
res.render( dashboard );
});
app.get( /settings ,IsAuthenticated,function(req,res,next){
res.render( settings );
});