为经过身份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'));
- 如何使用文件和数据在Node Express中发送响应
- Node.js – 在app.js中获取href的ID
- 使用static(),staticCache()和compress()node.js连接中间件
- 在node.js + express中分割()问题
- 使用Redis和Socket.io进行用户authentication
- file upload后,node.js keystoneJS渲染视图
- Node.js Express app:如果存在cookie,则将CSS class添加到服务器端的元素中
- Express 3.0 + Everyauth + HTTPS
- 在Async瀑布中为每个具有Mysql连接池的函数