为经过身份validation的用户显示静态

我如何才能启用静态目录只是为了用户的会议快递? 使用一些HTML文件作为例子,我知道我可以通过下面的调用服务一个名为private的目录

app.use("/private", express.static(appDir + '/private')); 

我想要做的只是启用静态资源,一旦用户已被authentication(使用stormpath作为我的例子)。

例如,下面的函数将检查用户是否存在stormpath,如果他们这样做,应用程序将提供地图的静态目录。

 app.get('/getPrivate', stormpath.getUser, function(req, res) { if(req.user){ app.use("/private", express.static(appDir + '/private')); res.redirect('/private/index.html'); }else{ //your not logged in.... redirect to login page } }); 

这不起作用,因为我已经find一旦我启用用户的静态目录,另一个用户就可以访问私人目录而无需login。

如果要为路由请求身份validation,则应使用stormpath.loginRequired 。 如果用户没有login,他们将被redirect到login页面。

在我的路线使用app.all做了诀窍

 var path = require('path'); var express = require('express'); var appDir = path.dirname(require.main.filename); app.all('/private/*', stormpath.getUser, function(req, res, next) { if(req.user){ next(); }else{ //you are not logged in.... redirect to login page res.redirect('/'); } }); app.use("/private", express.static(appDir + '/private'));