1

私はパスポートといくつかの静的 .html ファイルを使用しています。それらを高速ビューまたは静的ファイルとして含めたい。login.html のようないくつかの .html ファイルをすべての人が利用できるようにしたいのですが、secret.html のような他のビュー ファイルにはパスポートが必要です。app.get('somePath', ensureAuthenticated, function (req, res, next) {}ルートに使用できることは知っていますが 、静的ファイルに使用したいです。

非ハックな方法でそれを行う方法は?

4

1 に答える 1

1

すべての「安全な」ファイルが などの個別の URL プレフィックスを共有している場合、次のパス/public/secureを使用できます。use() ensureAuthenticated

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

それ以外の場合、express.static()ミドルウェアはアクセスを制御するための多くのオプションを提供しません。ほとんどの場合、指定されたパスから利用可能なすべてのファイルが「 public」であることを前提としています。

.ただし、プレフィックスの *nix 標準に従って、通常は隠しファイルの送信を拒否します。

~/path/to/.secret.html

次に、実際に提供するには、ミドルウェアを添付して、提案したルートでファイルを自分で送信できます。

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

static()また、ディレクトリの外に移動することを検討することもできます。

于 2013-09-18T07:39:32.900 に答える