在Express路径文件中停止复制passportjs isAuthenticated代码

时间:2017-05-09 17:43:38

标签: node.js passport.js

我使用passportjs进行身份验证。

我在整个项目中有很多不同的路线,其中95%需要以下功能:

 // Middleware functions
function isAuthenticated(req, res, next) {
     if (req.isAuthenticated())
        return next();

    res.redirect('/login');
}

目前,我将此功能放在每个路径文件的底部。

有没有办法写一次,并且能够在所有路径文件中使用它?

1 个答案:

答案 0 :(得分:2)

如果您在需要它的路由之前添加该中间件,所有请求将在它们转发到正确的路由处理程序之前通过它:

// doesn't require an authenticated request
app.use(router1);         

// add the middleware just once
app.use(isAuthenticated); 

// all following route(r)s require an authenticated request
app.use(router2);         
app.use(router3);
...