如何防止用户使用express访问客户端html文件?
我正在写一个“todolist”应用程序。 在我的node.js代码中,我使用express来访问我的文件夹Client :
var app = express(); app.use(express.static(__dirname + "/Client"));
在我的客户端文件夹中是以下内容:
codeJS.js homepage.html Todolistpage.html style.css logo.jpg
如何防止用户在inputlocalhost:3000 / Todolistpage.html (而不从我的客户端文件夹中删除Todolistpage.html )时无法查看我的Todolistpage.html文件?
(理想情况下,我尝试只允许用户login查看它)
如果不静态提供文件并将其作为视图逻辑的一部分进行处理,可能会更容易一些。 所以你只需从公共目录中删除它,并分别用app.get()
或router.get()
中间件来处理它。 有什么原因需要静态服务吗?
你可以做这样的事情:
var app = express(); app.get('/Todolistpage.html, function(req, res) { return res.status(401).end(); }); app.use(express.static(__dirname + '/Client');
这并不理想,因为只要文件名发生更改,就必须对其进行更改,而且必须为每个文件单独执行一次。
你也可以有一个不同的目录/secure
和一些用于用户身份validation的中间件,如:
app.use('/secure', someAuth, express.static(__dirname + '/secure'));
甚至…
app.use('/secure', someAuth, express.static(__dirname + '/Client/secure'));
但是这似乎让我感到困惑。