【问题标题】:Node.js Express.js secret static filesNode.js Express.js 秘密静态文件
【发布时间】:2017-05-16 19:39:54
【问题描述】:

我正在 node express 中为我的网站构建一个单页管理面板。

我决定拥有一个管理视图文件并通过 jQuery 或 AJAX 或类似的方式将部分 html 加载到其中(尚未决定)。

我必须从静态文件文件夹中提供这些文件(因为我必须在客户端加载它们),但这里的问题是这些文件现在可供所有人使用(还有 .css .js 文件等...)。

是否有可能对用户隐藏这些文件?或者如何在客户端隐藏某些文件或加载不公开的文件?

我真的不想在我的管理视图文件中插入我所有的 .css 和 .js 代码。

解决方案

在这里找到解决方案:How to secure a static route with Express and Nodejs

抱歉重复,之前没找到。

【问题讨论】:

  • 似乎您需要使用某种授权来处理应将哪些文件提供给允许查看它的人。查看处理授权的this npm packagethis one。注意:授权不同于身份验证。让我们知道它是否有助于并满足您的需求。
  • @BrunoGrisoliaCasarotti 谢谢你的回答。我在另一个问题中找到了解决方案,也感谢您分享有趣的包。

标签: javascript jquery node.js express


【解决方案1】:

您应该使用某种身份验证,例如护照,而中间件可能有助于保护您的静态文件:

app.use('/admin', function(req,res,next){
 if(req.user){
   return express.static(path.join(__dirname, 'public'));
 } else {
   res.render(403, 'login', {message:'Please, login!'});
 }
});

【讨论】:

  • 感谢您的回答。这对我来说似乎是一个有效而简单的灵魂。不幸的是 express.static 函数在任何其他函数中都不适合我。
猜你喜欢
  • 2014-11-24
  • 2012-05-13
  • 2014-10-18
  • 2019-11-28
  • 2017-01-07
  • 2012-07-13
相关资源
最近更新 更多