我使用的是护照和一些静态的.html文件。我想将它们作为表示视图或静态文件包括在内。现在,我希望一些.html文件(如login.html )可供每个人使用,但其他视图文件(如secret.html )则需要护照。我知道,您可以将app.get('somePath', ensureAuthenticated, function (req, res, next) {}用于路由,但我希望它用于静态文件。
怎么用一种无伤大雅的方式来做呢?
发布于 2013-09-18 07:39:32
如果所有“安全”文件共享一个不同的URL前缀(如/public/secure ),则可以使用以下路径创建use() ensureAuthenticated:
app.use('/public/secure', ensureAuthenticated);
app.use('/public', express.static(__dirname + '/public'));否则,中间件不提供许多控制访问的选项。在大多数情况下,它假设提供给它的路径中的所有可用文件都是“公共的”。
不过,它通常拒绝按照.前缀的*nix标准发送隐藏文件:
~/path/to/.secret.html然后,为了实际服务,您可以按照您建议的路线使用发送文件,并附上中间件:
app.get('/path/to/secret.html', ensureAuthenticated, function (req, res) {
res.sendfile(__dirname + '/path/to/.secret.html');
});而且,您可能想考虑将它移出您的static()目录,
https://stackoverflow.com/questions/18866128
复制相似问题