NodeJS和Express:将auth中间件添加到静态路径

时间:2015-03-02 17:23:44

标签: node.js express stormpath

我有一个运行Express的节点应用程序作为Web应用程序框架,我使用Stormpath进行身份验证。

Storm path提供了使用多个中间件保护路由的能力, 例如:

router.get('/user_data_api', stormpath.apiAuthenticationRequired, function(req, res) {
        res.send('hello you are authenticated!");
     });
});

我想要做的是将authenticationRequired作为中间件添加到express的静态定义中:

app.use(express.static(__dirname + '/public'));

这可以通过添加到静态资产的路由来实现,所以如果我有一个文件./public/index.html我可以像这样设置路由:

app.use('/secured-assets', 
               stormpath.auth_fn, express.static(__dirname + '/public'));

但是文件将在

  

www.mydomain.com/secured-assets/index.html

我想要它

  

www.mydomain.com/index.html

帮助?

2 个答案:

答案 0 :(得分:3)

只做:

app.use(stormpath.auth_fn, express.static(__dirname + '/public'));

它会将stormpath.auth_fnexpress.static(__dirname + '/public')个中间件添加到/路径,因此会保护每条路径。

答案 1 :(得分:0)

这适用于Express ^ 4.13.4和Stormpath ^ 3.1.2

app.use(stormpath.loginRequired, express.static(__dirname + '/public'));