Javascript Passport.js express视图

Javascript Passport.js express视图,javascript,node.js,passport.js,Javascript,Node.js,Passport.js,我正在使用passport和一些静态的.html文件。我想将它们作为快速视图或静态文件包含。现在,我希望一些.html文件(如login.html)可供所有人使用,但其他视图文件(如secret.html)应需要passport。 我知道,你可以用 app.get('somePath',ensureAuthenticated,函数(req,res,next){}用于路由,但我希望它用于静态文件 如何以非黑客方式执行此操作?如果所有“安全”文件共享一个不同的URL前缀,例如/public/secu

我正在使用passport和一些静态的.html文件。我想将它们作为快速视图或静态文件包含。现在,我希望一些.html文件(如login.html)可供所有人使用,但其他视图文件(如secret.html)应需要passport。 我知道,你可以用
app.get('somePath',ensureAuthenticated,函数(req,res,next){}
用于路由,但我希望它用于静态文件

如何以非黑客方式执行此操作?

如果所有“安全”文件共享一个不同的URL前缀,例如
/public/secure
,则可以
使用以下路径确保重新验证

app.use('/public/secure', ensureAuthenticated);
app.use('/public', express.static(__dirname + '/public'));

否则,不会提供很多控制访问的选项。在大多数情况下,它假定从给定路径到它的所有可用文件都是“公共”的

但是,它通常拒绝发送隐藏文件,遵循
前缀的*nix标准:

~/path/to/.secret.html
然后,为了实际提供服务,您可以按照您建议的路线,附上middlware:

app.get('/path/to/secret.html', ensureAuthenticated, function (req, res) {
    res.sendfile(__dirname + '/path/to/.secret.html');
});

和,您可能想考虑把它从您的代码> STATIC()/代码>目录下,

如果所有的“安全”文件共享一个不同的URL前缀,例如<代码> /Pult/Suths<代码>,您可以使用这个路径< <代码> EnSurecRealAdvestux/<代码>:

app.use('/public/secure', ensureAuthenticated);
app.use('/public', express.static(__dirname + '/public'));

否则,不会提供很多控制访问的选项。在大多数情况下,它假定从给定路径到它的所有可用文件都是“公共”的

但是,它通常拒绝发送隐藏文件,遵循
前缀的*nix标准:

~/path/to/.secret.html
然后,为了实际提供服务,您可以按照您建议的路线,附上middlware:

app.get('/path/to/secret.html', ensureAuthenticated, function (req, res) {
    res.sendfile(__dirname + '/path/to/.secret.html');
});

和,你可能想考虑把它从你的代码> STATIC()中移出。directory,

谢谢你的回答,但是你的第二个想法不起作用。lib-express用来发送文件的文件找不到点文件。我认为这是有意的。谢谢你的回答,但是你的第二个想法不起作用。lib-express用来发送文件的文件找不到点文件。我认为这是有意的。